12 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -a detect_polymorphism -D why3 -T Mono -G g *)
24 goal g1 : forall x. x = A \/ x = B
28 goal g2 : forall x y. y = D x
33 goal g3 : forall x. x <> F (H x)
35 type v = I (p:t) | J (p:t) u
39 goal g4 : match x with I y -> y=A | J y (D z) -> z=A | J B z -> z=C | J A C -> true end
41 goal g5 : match x with I y -> y | J y _ -> y end = A
43 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -a detect_polymorphism -D why3 -T MonoType -G g0 *)
52 goal g: forall x y:'a. A x = A y
54 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -a detect_polymorphism -D why3 -T PolyType -G g *)
63 goal g : match Cons 42 Nil with Nil -> false | Cons x _ -> x=42 end
70 function id (x:int) : int = x
72 goal g: forall x:int. id x = x
74 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -a detect_polymorphism -D why3 -T PolySymb -G g *)
80 function id (x:'a) : 'a = x
82 meta "encoding:ignore_polymorphism_ls" function id
84 goal g: forall x:int. id x = x
86 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -a detect_polymorphism -D why3 -T PolySymb -G g *)
92 goal g: forall x:'a. x = x
94 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -a detect_polymorphism -D why3 -T PolyProp -G g *)
104 goal g: forall m:map int int.
105 let m' = m[0<-42][1<-42] in
108 (* bin/why3prove.byte tests/test-poly.why --debug detect_poly -D why3_smt -T Map -G g *)
117 goal g : forall b:bool. b = b
121 bin/why3prove tests/test-poly.why -D why3_smt -T TestBool -G g
135 goal g: forall x:t. match x with (a,b) -> a >= 0 /\ b end