1 (* Why driver for Why3 syntax *)
4 filename "%f-%t-%g.why"
6 (* Performed introductions depending on whether counterexamples are
7 requested, as said by the meta "get_counterexmp". When this meta
8 set, this transformation introduces the model variables that are
9 still embedded in the goal. When it is not set, it removes all
10 these unused-ce-related variables, even in the context. *)
11 transformation "counterexamples_dependent_intros"
13 transformation "inline_trivial"
14 transformation "eliminate_builtin"
15 transformation "detect_polymorphism"
17 transformation "eliminate_definition"
18 (* We could keep more definitions by using
19 transformation "eliminate_definition_conditionally"
20 instead, but some proofs are lost
21 (examples/logic/triangle_inequality.why)
23 transformation "eliminate_inductive"
24 transformation "eliminate_epsilon"
26 transformation "simplify_formula"
27 (*transformation "simplify_trivial_quantification"*)
29 transformation "eliminate_projections_sums"
30 transformation "discriminate_if_poly"
31 transformation "eliminate_algebraic_if_poly"
32 transformation "encoding_smt_if_poly"
36 syntax type real "real"
37 syntax predicate (=) "(%1 = %2)"
39 meta "encoding:kept" type int
40 meta "encoding:kept" type real
41 meta "encoding:ignore_polymorphism_ls" predicate (=)
45 meta "encoding:lskept" function ite
46 meta "encoding:ignore_polymorphism_ls" function ite
50 meta "encoding:lskept" function (@)
51 meta "encoding:ignore_polymorphism_ts" type (->)
52 meta "encoding:ignore_polymorphism_ls" function (@)
56 meta "encoding:lskept" function get
57 meta "encoding:lskept" function set
58 meta "encoding:ignore_polymorphism_ls" function get
59 meta "encoding:ignore_polymorphism_ls" function ([])
60 meta "encoding:ignore_polymorphism_ls" function set
61 meta "encoding:ignore_polymorphism_ls" function ([<-])
64 import "discrimination.gen"
66 meta "select_alginst_default" "local"
67 meta "eliminate_algebraic" "keep_mono"