4 theory Test_inline_trivial
7 predicate eq (x y :'a) = x=y
20 function id(x: int) : int = x
21 function id2(x: int) : int = id(x)
22 function succ(x:int) : int = id(x+1)
25 function f (int) : myt
26 clone transform.encoding_decorate.Kept with type t = myt
28 goal G : (forall x:int.f(x)=f(x)) \/
30 goal G2 : forall x:int. let x = 0 + 1 in x = let y = 0 + 1 + 0 in y
34 theory Test_simplify_array
37 goal G1 : forall x y:int. forall m: map int int.
39 goal G2 : forall x y:int. forall m: map int int.
41 goal G3 : forall x y:int. forall m: map int int.
45 theory Test_simplify_array2
49 goal G1 : forall y:int. forall x:t2 int. forall m: map int (t2 int).
58 goal G : forall x:t. f a = x
61 theory Test_conjunction
63 axiom Trivial : 2 * 2 = 4 /\ 4 * 2 = 8
65 forall x:int. x*x=4 -> ((x*x*x=8 \/ x*x*x = -8) /\ x*x*2 = 8)
68 (x+x=4 \/ x*x=4) -> ((x*x*x=8 \/ x*x*x = -8) /\ x*x*2 = 8)
73 (*goal G : forall x,y,z:int. ((p(x) -> p(y)) /\ ((not p(x)) -> p(z))) -> ((p(x) /\ p(y)) \/ ((not p(x)) /\ p(z)))*)
74 (*goal G : forall x,y,z:int. (if p(x) then p(y) else p(z)) <-> ((p(x) /\ p(y)) \/ ((not p(x)) /\ p(z)))*)
75 (*goal G : forall x,y,z:int. (if p(x) then p(y) else p(z)) -> (if p(x) then p(y) else p(z))*)
76 goal G : forall x y z:int. (p(x) <-> p(z)) -> (p(x) <-> p(z))
77 (*goal G : forall x,y,z:int. (p(z) <-> p(x)) -> (((not p(z)) /\ (not p(x)) \/ ((p(z)) /\ (p(x))))) *)
78 (*goal G : forall x,y,z:int. (p(x) \/ p(y)) -> p(z)*)
86 meta "encoding : kept" type int
88 function id(x: int) : int = x
89 function id2(x: int) : int = id(x)
90 function succ(x:int) : int = id(x+1)
92 goal G : (forall x:int. x=x) \/
94 function p('a ) : mytype 'a
95 function p2(mytype 'a) : 'a
97 function f (toto) : mytype toto
98 axiom A0 : forall x : toto. f(x) = p(x)
99 function g (mytype int) : toto
100 function h (int) : toto
101 axiom A05 : forall x : int. g(p(x)) = h(x)
102 axiom A1 : forall x : mytype 'a. p(p2(x)) = x
103 goal G2 : forall x:mytype toto. f(p2(x)) = x
110 function abs(x:int) : int = if x >= 0 then x else -x
111 goal G : forall x:int. abs(x) >= 0
112 goal G2 : forall x:int. if x>=0 then x >= 0 else -x>=0
115 theory TestBuiltin_real
117 goal G1 : 5.5 * 10. = 55.
118 goal G2 : 9. / 3. = 3.
119 goal G3 : inv(5.) = 0.2
122 theory TestBuiltin_bool
124 goal G : xorb True False = True
125 goal G_false : xorb True False = False
128 theory TestEncodingEnumerate
130 goal G : forall x : t. (x = A \/ x = B) -> x<>C
131 goal G1 : forall x : t. B <> A
132 goal G2 : forall x : t. x = A \/ x = B \/ x=C
133 goal G3 : forall x : t. x = A \/ x = B \/ x <> C
138 compile-command: "make -C .. test"