1 (* Why driver for first-order tptp provers *)
7 timeout "Zenon error: could not find a proof within the time limit"
8 outofmemory "Zenon error: could not find a proof within the memory size limit"
9 unknown "NO-PROOF" "no proof found"
10 time "why3cpulimit time : %s s"
14 (* Performed introductions depending on whether counterexamples are
15 requested, as said by the meta "get_counterexmp". When this meta
16 set, this transformation introduces the model variables that are
17 still embedded in the goal. When it is not set, it removes all
18 these unused-ce-related variables, even in the context. *)
19 transformation "counterexamples_dependent_intros"
21 transformation "inline_trivial"
23 transformation "eliminate_builtin"
24 transformation "eliminate_definition"
25 transformation "eliminate_inductive"
26 transformation "eliminate_if"
27 transformation "eliminate_epsilon"
28 transformation "eliminate_algebraic"
29 transformation "eliminate_literal"
30 transformation "eliminate_let"
33 syntax predicate (=) "(%1 = %2)"
34 syntax type int "$int"
35 syntax type real "$real"
36 meta "eliminate_algebraic" "no_index"
41 syntax function zero "0"
42 syntax function one "1"
44 syntax function (+) "$sum(%1,%2)"
45 syntax function (-) "$difference(%1,%2)"
46 syntax function (*) "$product(%1,%2)"
47 syntax function (-_) "$uminus(%1)"
49 syntax predicate (<=) "$lesseq(%1,%2)"
50 syntax predicate (<) "$less(%1,%2)"
51 syntax predicate (>=) "$greatereq(%1,%2)"
52 syntax predicate (>) "$greater(%1,%2)"
54 remove prop MulComm.Comm
55 remove prop MulAssoc.Assoc
56 remove prop Unit_def_l
57 remove prop Unit_def_r
61 remove prop Mul_distr_l
62 remove prop Mul_distr_r
69 remove prop NonTrivialRing
70 remove prop CompatOrderAdd
71 remove prop ZeroLessOne
75 syntax function zero "0.0"
76 syntax function one "1.0"
78 syntax function (+) "$sum(%1,%2)"
79 syntax function (-) "$difference(%1,%2)"
80 syntax function (*) "$product(%1,%2)"
81 syntax function (-_) "$uminus(%1)"
83 syntax function (/) "$quotient(%1,%2)"
84 syntax function inv "$quotient(1.0,%1)"
86 syntax predicate (<=) "$lesseq(%1,%2)"
87 syntax predicate (<) "$less(%1,%2)"
88 syntax predicate (>=) "$greatereq(%1,%2)"
89 syntax predicate (>) "$greater(%1,%2)"
91 remove prop MulComm.Comm
92 remove prop MulAssoc.Assoc
93 remove prop Unit_def_l
94 remove prop Unit_def_r
98 remove prop Mul_distr_l
99 remove prop Mul_distr_r
107 remove prop NonTrivialRing
108 remove prop CompatOrderAdd
109 remove prop ZeroLessOne
112 theory int.EuclideanDivision
113 syntax function div "$quotient_e(%1,%2)"
114 syntax function mod "$remainder_e(%1,%2)"
117 remove prop Div_bound
118 remove prop Mod_bound
122 remove prop Div_inf_neg
124 remove prop Div_1_left
125 remove prop Div_minus1_left
126 remove prop Mod_1_left
127 remove prop Mod_minus1_left
131 syntax type iType "$i"
135 syntax function floor "$floor(%1)"
136 syntax function ceiling "$ceiling(%1)"
137 syntax function truncate "$truncate(%1)"
138 syntax function round "$round(%1)"
140 syntax function to_int "$to_int(%1)"
142 syntax predicate is_int "$is_int(%1)"
143 syntax predicate is_rat "$is_rat(%1)"
147 syntax function div_t "$quotient_t(%1,%2)"
148 syntax function mod_t "$remainder_t(%1,%2)"
152 syntax function div_f "$quotient_f(%1,%2)"
153 syntax function mod_f "$remainder_f(%1,%2)"
157 syntax type rat "$rat"
159 syntax function zero "0/1"
160 syntax function one "1/1"
162 syntax function (+) "$sum(%1,%2)"
163 syntax function (-) "$difference(%1,%2)"
164 syntax function (*) "$product(%1,%2)"
165 syntax function (-_) "$uminus(%1)"
167 syntax function (/) "$quotient(%1,%2)"
168 syntax function inv "$quotient(1/1,%1)"
170 syntax predicate (<=) "$lesseq(%1,%2)"
171 syntax predicate (<) "$less(%1,%2)"
172 syntax predicate (>=) "$greatereq(%1,%2)"
173 syntax predicate (>) "$greater(%1,%2)"
175 syntax function to_rat "$to_rat(%1)"
177 syntax predicate is_int "$is_int(%1)"
178 syntax predicate is_rat "$is_rat(%1)"
180 remove prop MulComm.Comm
181 remove prop MulAssoc.Assoc
182 remove prop Unit_def_l
183 remove prop Unit_def_r
184 remove prop Inv_def_l
185 remove prop Inv_def_r
187 remove prop Mul_distr_l
188 remove prop Mul_distr_r
195 remove prop NonTrivialRing
196 remove prop CompatOrderAdd
197 remove prop ZeroLessOne
201 syntax function floor "$floor(%1)"
202 syntax function ceiling "$ceiling(%1)"
203 syntax function truncate "$truncate(%1)"
204 syntax function round "$round(%1)"
206 syntax function to_int "$to_int(%1)"
210 syntax function div "$quotient_e(%1,%2)"
211 syntax function mod "$remainder_e(%1,%2)"
215 syntax function div_t "$quotient_t(%1,%2)"
216 syntax function mod_t "$remainder_t(%1,%2)"
220 syntax function div_f "$quotient_f(%1,%2)"
221 syntax function mod_f "$remainder_f(%1,%2)"
225 syntax function to_real "$to_real(%1)"
229 syntax function from_int "$to_real(%1)"
240 syntax function floor "$to_int(%1)"
241 syntax function ceil "$to_int($ceiling(%1))"
242 syntax function truncate "$to_int($truncate(%1))"
244 remove prop Truncate_int
245 remove prop Truncate_down_pos
246 remove prop Truncate_up_neg
247 remove prop Real_of_truncate
248 remove prop Truncate_monotonic
249 remove prop Truncate_monotonic_int1
250 remove prop Truncate_monotonic_int2
251 remove prop Floor_int
253 remove prop Floor_down
255 remove prop Floor_monotonic
256 remove prop Ceil_monotonic
259 theory tptp.RealTrunc
260 syntax function floor "$floor(%1)"
261 syntax function ceiling "$ceiling(%1)"
262 syntax function truncate "$truncate(%1)"
263 syntax function round "$round(%1)"
265 syntax function to_int "$to_int(%1)"
267 syntax predicate is_int "$is_int(%1)"
268 syntax predicate is_rat "$is_rat(%1)"
272 syntax function div "$quotient_e(%1,%2)"
273 syntax function mod "$remainder_e(%1,%2)"
277 syntax function div_t "$quotient_t(%1,%2)"
278 syntax function mod_t "$remainder_t(%1,%2)"
282 syntax function div_f "$quotient_f(%1,%2)"
283 syntax function mod_f "$remainder_f(%1,%2)"
287 syntax function to_rat "$to_rat(%1)"
290 theory tptp.IntToReal
291 syntax function to_real "$to_real(%1)"
294 theory tptp.RealToRat
295 syntax function to_rat "$to_rat(%1)"
298 theory tptp.RatToReal
299 syntax function to_real "$to_real(%1)"