Merge branch 'smtv2-dont-fail-on-untyped-prover-vars' into 'master'
[why3.git] / tests / array_eq.mlw
blobb39bc20c5a6ee507d7c202e7bb389cd4f0add184
3 module ArrayUpdate
5   use int.Int
6   use array.Array
8   let test (a:array int)
9     requires { a.length >= 1 } 
10    =
11     label L in 
12     a[0] <- 42;
13     assert { a = (a at L)[0 <- 42] }
14   
16 end
19 module ImpMapUpdate
21   clone impmap.ImpmapNoDom with type key = int
23   let test (m:t int) =
24     label L in 
25     m[0] <- 42;
26     assert { m = (m at L)[0 <- 42] }
27   
30 end
32 module ArrayFunctionalUpdate
34   use int.Int
35   use array.Array
37   predicate p (array int)
38   
39   let test (a:array int) (i:int)
40     requires { 0 <= i < a.length }
41     requires { p (a[i<-42]) }
42   = a[i] <- 42;
43     assert { p a }
45 end