source: CIVL/examples/verifyThisProblems/quantifiedComp.cvl@ b7a3ce6

1.23 2.0 main test-branch
Last change on this file since b7a3ce6 was 0ae124a, checked in by Yihao Yan <yihaoyan1@…>, 10 years ago

format changes

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@3115 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 666 bytes
RevLine 
[cc283ee]1/*
[0ae124a]2author: Yihao
[f3368e99]3
4Link(LCP.zip): http://fm2012.verifythis.org/challenges
5
[cc283ee]6This is a verifyThis problem in 2012.
[f3368e99]7This task asks you to get the longest common prefix of
[cc283ee]8two subStrings.
9
10Input: an integer array arr, the length of the array, and two indices x and y.
11*/
12
13#include <civlc.cvh>
14#include <assert.h>
15
16$input int n=3;
17$input int x;
18$input int y;
19$input int X1[n];
20
21$assume (x < n && y < n && x >=0 && y>=0);
22
[0ae124a]23int lcp (int *arr, int n, int x, int y) {
[cc283ee]24 int l=0;
[f3368e99]25
[cc283ee]26 while (x+l<n && y+l<n && arr[x+l]==arr[y+l]) {
27 l++;
28 }
29 return l;
30}
31
[0ae124a]32void main() {
[cc283ee]33 int result = lcp(X1, n, x, y);
[f3368e99]34
[cc283ee]35 assert($forall {int i | i>=0 && i<result} X1[x+i] == X1[y+i]);
36}
Note: See TracBrowser for help on using the repository browser.