Commit eb43812d authored by MARCHE Claude's avatar MARCHE Claude

Merge branch 'master' into itp

Conflicts:
	examples/dijkstra/why3session.xml
	examples/dijkstra/why3shapes.gz
	src/tools/why3prove.ml
parents 81bbad2b eb751c1b
......@@ -101,7 +101,7 @@
</transf>
</goal>
</theory>
<theory name="IntArrayCursor" sum="8090cb9a5eb720659015e09ae27d5ddf" expanded="true">
<theory name="IntArrayCursor" sum="0e0d1427d3bf976c46e43f3795d29aa6" expanded="true">
<goal name="WP_parameter create" expl="VC for create" expanded="true">
<proof prover="5"><result status="valid" time="0.05" steps="15"/></proof>
</goal>
......@@ -137,12 +137,12 @@
<proof prover="1"><result status="unknown" time="0.05"/></proof>
</goal>
<goal name="WP_parameter next.4" expl="4. postcondition">
<proof prover="2"><result status="valid" time="0.27"/></proof>
<proof prover="2"><result status="valid" time="0.41"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="TestArrayCursor" sum="32c64c0426c4c4a9eb75e763071b02bd">
<theory name="TestArrayCursor" sum="7d18da58ded19d7039316e45244f1693">
<goal name="WP_parameter array_sum_array_to_list" expl="VC for array_sum_array_to_list">
<proof prover="1"><result status="valid" time="0.04" steps="46"/></proof>
</goal>
......
......@@ -7,7 +7,7 @@
<prover id="2" name="Alt-Ergo" version="0.95.2" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.3" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../logic.mlw">
<theory name="Compiler_logic" sum="01e7845ed8490da8741a9ca86ba106c9">
<theory name="Compiler_logic" sum="c12240d535cc2c746aa01470b9422232">
<goal name="seq_wp_lemma">
<proof prover="2"><result status="valid" time="0.04" steps="8"/></proof>
</goal>
......@@ -72,7 +72,7 @@
</goal>
<goal name="WP_parameter make_loop_hl.1.2" expl="2. assertion">
<transf name="induction_pr">
<goal name="WP_parameter make_loop_hl.1.2.1" expl="1. VC for make_loop_hl">
<goal name="WP_parameter make_loop_hl.1.2.1" expl="1. assertion">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter make_loop_hl.1.2.1.1" expl="1. VC for make_loop_hl">
<transf name="compute_specified">
......
......@@ -3,19 +3,20 @@
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="CVC3" version="2.4.1" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../vm.mlw" expanded="true">
<theory name="ReflTransClosure" sum="b95bd9cec6f5b6d4f89525010d16d760">
<theory name="ReflTransClosure" sum="f262a809b2b34d0ef483b05c11f8827b">
<goal name="transition_star_one">
<proof prover="0"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="transition_star_transitive">
<transf name="induction_pr">
<goal name="transition_star_transitive.1" expl="1.">
<proof prover="2"><result status="valid" time="0.01" steps="4"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="5"/></proof>
</goal>
<goal name="transition_star_transitive.2" expl="2.">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="10"/></proof>
</goal>
</transf>
</goal>
......
......@@ -271,11 +271,9 @@ theory Mat22 "2x2 integer matrices"
a21 = x.a21 * y.a11 + x.a22 * y.a21; a22 = x.a21 * y.a12 + x.a22 * y.a22;
}
(* holds, but not useful *)
(* clone algebra.Assoc with type t = t, function op = mult, lemma Assoc *)
clone export
int.Exponentiation with type t = t, function one = id, function (*) = mult
int.Exponentiation with type t = t, function one = id, function (*) = mult,
goal Monoid.Assoc, goal Monoid.Unit_def_l, goal Monoid.Unit_def_r
end
......
......@@ -3,9 +3,10 @@
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Coq" version="8.6" timelimit="10" steplimit="0" memlimit="0"/>
<prover id="1" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="CVC3" version="2.4.1" timelimit="5" steplimit="0" memlimit="4000"/>
<prover id="4" name="Spass" version="3.7" timelimit="5" steplimit="0" memlimit="0"/>
<prover id="7" name="Vampire" version="0.6" timelimit="3" steplimit="0" memlimit="0"/>
<prover id="7" name="Vampire" version="0.6" timelimit="5" steplimit="0" memlimit="0"/>
<prover id="8" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="9" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="4000"/>
<prover id="10" name="Eprover" version="1.8-001" timelimit="5" steplimit="0" memlimit="0"/>
......@@ -21,7 +22,7 @@
<goal name="not_isfib_2_2">
<proof prover="2" memlimit="0"><result status="valid" time="0.00"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
<proof prover="7" timelimit="5"><result status="valid" time="0.03"/></proof>
<proof prover="7"><result status="valid" time="0.03"/></proof>
<proof prover="8" memlimit="0"><result status="valid" time="0.01" steps="4"/></proof>
<proof prover="10"><result status="valid" time="0.01"/></proof>
</goal>
......@@ -430,21 +431,28 @@
</transf>
</goal>
</theory>
<theory name="Mat22" sum="d41d8cd98f00b204e9800998ecf8427e">
<theory name="Mat22" sum="cc41e6488bdd64071b3c815e4f5356d3">
<goal name="Monoid.Assoc">
<proof prover="1"><result status="valid" time="0.02" steps="2"/></proof>
</goal>
<goal name="Monoid.Unit_def_l">
<proof prover="1"><result status="valid" time="0.00" steps="2"/></proof>
</goal>
<goal name="Monoid.Unit_def_r">
<proof prover="1"><result status="valid" time="0.00" steps="2"/></proof>
</goal>
</theory>
<theory name="FibonacciLogarithmic" sum="b47fef62882561569b783ece5a6bfae1">
<theory name="FibonacciLogarithmic" sum="1463e67fce33079e4726bf939886c65a">
<goal name="WP_parameter logfib" expl="VC for logfib">
<transf name="split_goal_wp">
<goal name="WP_parameter logfib.1" expl="1. postcondition">
<proof prover="2" memlimit="0"><result status="valid" time="0.00"/></proof>
<proof prover="7"><result status="valid" time="0.00"/></proof>
<proof prover="8" memlimit="0"><result status="valid" time="0.01" steps="5"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="WP_parameter logfib.2" expl="2. variant decrease">
<proof prover="8"><result status="valid" time="0.00" steps="4"/></proof>
<proof prover="1"><result status="valid" time="0.01" steps="5"/></proof>
</goal>
<goal name="WP_parameter logfib.3" expl="3. precondition">
<proof prover="2" memlimit="0"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="5"/></proof>
</goal>
<goal name="WP_parameter logfib.4" expl="4. postcondition">
<proof prover="0" edited="fibonacci_WP_FibonacciLogarithmic_WP_parameter_logfib_1.v"><result status="valid" time="0.47"/></proof>
......@@ -455,26 +463,25 @@
<proof prover="0" edited="fibonacci_WP_FibonacciLogarithmic_fib_m_1.v"><result status="valid" time="0.40"/></proof>
</goal>
<goal name="WP_parameter fibo" expl="VC for fibo">
<proof prover="2" memlimit="0"><result status="valid" time="0.00"/></proof>
<proof prover="8" memlimit="0"><result status="valid" time="0.00" steps="5"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="WP_parameter test0" expl="VC for test0">
<proof prover="8"><result status="valid" time="0.01" steps="2"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
<goal name="WP_parameter test1" expl="VC for test1">
<proof prover="8"><result status="valid" time="0.00" steps="2"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
<goal name="WP_parameter test7" expl="VC for test7">
<proof prover="8"><result status="valid" time="0.01" steps="2"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
<goal name="WP_parameter test42" expl="VC for test42">
<proof prover="8"><result status="valid" time="0.02" steps="2"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
<goal name="WP_parameter test2014" expl="VC for test2014">
<proof prover="8" memlimit="4000"><result status="valid" time="0.01" steps="2"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
<goal name="WP_parameter bench" expl="VC for bench">
<proof prover="8" memlimit="4000"><result status="valid" time="0.01" steps="2"/></proof>
<proof prover="1"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
</theory>
</file>
......
This diff is collapsed.
......@@ -8,7 +8,7 @@
</theory>
<theory name="GraphShape" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="SchorrWaite" sum="fff0d08f435a9cc7f0ce6b34b7547c29" expanded="true">
<theory name="SchorrWaite" sum="60eff84723b352455c04d10ba2696679" expanded="true">
<goal name="WP_parameter black" expl="VC for black">
<proof prover="0"><result status="valid" time="0.01" steps="5"/></proof>
</goal>
......@@ -408,7 +408,7 @@
<proof prover="0"><result status="valid" time="0.05" steps="97"/></proof>
</goal>
<goal name="WP_parameter schorr_waite.132" expl="132. postcondition">
<proof prover="0"><result status="valid" time="0.79" steps="503"/></proof>
<proof prover="0"><result status="valid" time="0.61" steps="503"/></proof>
</goal>
<goal name="WP_parameter schorr_waite.133" expl="133. postcondition">
<proof prover="0"><result status="valid" time="0.57" steps="416"/></proof>
......@@ -519,7 +519,7 @@
<proof prover="0"><result status="valid" time="0.47" steps="396"/></proof>
</goal>
<goal name="WP_parameter schorr_waite.169" expl="169. postcondition">
<proof prover="0" timelimit="20"><result status="valid" time="3.75" steps="2160"/></proof>
<proof prover="0" timelimit="20"><result status="valid" time="3.75" steps="2305"/></proof>
</goal>
<goal name="WP_parameter schorr_waite.170" expl="170. postcondition">
<proof prover="0"><result status="valid" time="0.10" steps="103"/></proof>
......@@ -562,23 +562,23 @@
</goal>
<goal name="WP_parameter schorr_waite.183" expl="183. assertion">
<transf name="induction_pr">
<goal name="WP_parameter schorr_waite.183.1" expl="1. VC for schorr_waite">
<goal name="WP_parameter schorr_waite.183.1" expl="1. assertion">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter schorr_waite.183.1.1" expl="1. VC for schorr_waite">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter schorr_waite.183.1.1.1" expl="1. VC for schorr_waite">
<proof prover="0"><result status="valid" time="0.01" steps="9"/></proof>
<proof prover="0"><result status="valid" time="0.02" steps="9"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="WP_parameter schorr_waite.183.2" expl="2. VC for schorr_waite">
<goal name="WP_parameter schorr_waite.183.2" expl="2. assertion">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter schorr_waite.183.2.1" expl="1. VC for schorr_waite">
<transf name="simplify_trivial_quantification_in_goal">
<goal name="WP_parameter schorr_waite.183.2.1.1" expl="1. VC for schorr_waite">
<proof prover="0"><result status="valid" time="0.02" steps="64"/></proof>
<proof prover="0"><result status="valid" time="0.01" steps="64"/></proof>
</goal>
</transf>
</goal>
......
......@@ -4,11 +4,12 @@
<why3session shape_version="4">
<prover id="0" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="1.01" timelimit="6" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="3" name="Z3" version="4.4.0" timelimit="6" steplimit="0" memlimit="1000"/>
<prover id="4" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="5" name="Coq" version="8.6" timelimit="6" steplimit="0" memlimit="1000"/>
<file name="../../../modules/array.mlw">
<theory name="Array" sum="324e125dff69cfce0eefc07a77b17b42">
<file name="../../../modules/array.mlw" expanded="true">
<theory name="Array" sum="285c467dea3cde7aa3a3c699222d37ee">
<goal name="WP_parameter defensive_get" expl="VC for defensive_get">
<proof prover="0"><result status="valid" time="0.01" steps="5"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
......@@ -21,6 +22,9 @@
<proof prover="0"><result status="valid" time="0.02" steps="58"/></proof>
<proof prover="4"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter self_blit" expl="VC for self_blit">
<proof prover="2"><result status="valid" time="0.10" steps="148"/></proof>
</goal>
</theory>
<theory name="IntArraySorted" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
......@@ -53,7 +57,10 @@
</theory>
<theory name="NumOfEq" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="ToList" sum="d41d8cd98f00b204e9800998ecf8427e">
<theory name="ToList" sum="b7bcfe4954496ee8ce9bf8d36ab68113">
<goal name="WP_parameter to_list_append" expl="VC for to_list_append">
<proof prover="2"><result status="valid" time="0.01" steps="34"/></proof>
</goal>
</theory>
<theory name="ToSeq" sum="972d3973679c1b19bf79339fb847c382">
<goal name="WP_parameter to_seq_length" expl="VC for to_seq_length">
......
......@@ -9,7 +9,7 @@
<prover id="4" name="Z3" version="4.4.0" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="5" name="Alt-Ergo" version="1.01" timelimit="1" steplimit="0" memlimit="1000"/>
<file name="../bv.why" expanded="true">
<theory name="CheckBV64" sum="855747e71f46058c96f9a701bed1fff5" expanded="true">
<theory name="CheckBV64" sum="e1d447629924850ec87d19e840f58819" expanded="true">
<goal name="ok_zero">
<proof prover="0"><result status="valid" time="0.02" steps="87"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
......@@ -197,7 +197,7 @@
</goal>
<goal name="smoke4">
<proof prover="0" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="1"><result status="unknown" time="0.56"/></proof>
<proof prover="1"><result status="unknown" time="3.04"/></proof>
<proof prover="2"><result status="unknown" time="0.01"/></proof>
<proof prover="3"><result status="timeout" time="0.95"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......@@ -260,12 +260,12 @@
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="g3a">
<proof prover="1"><result status="valid" time="2.12"/></proof>
<proof prover="1"><result status="valid" time="0.81"/></proof>
<proof prover="2"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="g3b">
<proof prover="1"><result status="valid" time="0.99"/></proof>
<proof prover="1"><result status="valid" time="0.24"/></proof>
<transf name="compute_in_goal">
<goal name="g3b.1" expl="1.">
<proof prover="2"><result status="valid" time="0.01"/></proof>
......@@ -275,7 +275,7 @@
</goal>
<goal name="f3">
<proof prover="0" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="1"><result status="unknown" time="3.36"/></proof>
<proof prover="1"><result status="unknown" time="4.01"/></proof>
<proof prover="2"><result status="unknown" time="0.00"/></proof>
<proof prover="3"><result status="timeout" time="0.89"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......@@ -301,7 +301,7 @@
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="g7">
<proof prover="0"><result status="valid" time="0.04" steps="74"/></proof>
<proof prover="0"><result status="valid" time="0.04" steps="70"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.12"/></proof>
......@@ -385,7 +385,7 @@
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
</theory>
<theory name="CheckBV32" sum="b1a27c5773887143af0b808502b49f11">
<theory name="CheckBV32" sum="379a581bc41c1769af82fa1e277addf0">
<goal name="ok_zero">
<proof prover="0"><result status="valid" time="0.03" steps="87"/></proof>
<proof prover="1"><result status="valid" time="0.03"/></proof>
......@@ -482,7 +482,7 @@
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="ok13">
<proof prover="1"><result status="valid" time="1.08"/></proof>
<proof prover="1"><result status="valid" time="0.36"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
......@@ -574,7 +574,7 @@
</goal>
<goal name="smoke4">
<proof prover="0" timelimit="1"><result status="timeout" time="1.01"/></proof>
<proof prover="1"><result status="unknown" time="0.49"/></proof>
<proof prover="1"><result status="unknown" time="2.98"/></proof>
<proof prover="2"><result status="unknown" time="0.00"/></proof>
<proof prover="3"><result status="timeout" time="0.94"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......@@ -587,7 +587,7 @@
</goal>
<goal name="smoke6">
<proof prover="0" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="1"><result status="unknown" time="0.45"/></proof>
<proof prover="1"><result status="unknown" time="0.72"/></proof>
<proof prover="2"><result status="unknown" time="0.01"/></proof>
<proof prover="3"><result status="timeout" time="0.94"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......@@ -607,7 +607,7 @@
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
</goal>
</theory>
<theory name="CheckBV16" sum="519ba81a22fcf5e81486ce11e8ce3427">
<theory name="CheckBV16" sum="2768201be40c89988ecf323bb00def17">
<goal name="ok_zero">
<proof prover="0"><result status="valid" time="0.04" steps="87"/></proof>
<proof prover="1"><result status="valid" time="0.04"/></proof>
......@@ -704,7 +704,7 @@
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="ok13">
<proof prover="1"><result status="valid" time="1.08"/></proof>
<proof prover="1"><result status="valid" time="0.35"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
......@@ -796,7 +796,7 @@
</goal>
<goal name="smoke4">
<proof prover="0" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="1"><result status="unknown" time="0.54"/></proof>
<proof prover="1"><result status="unknown" time="2.99"/></proof>
<proof prover="2"><result status="unknown" time="0.00"/></proof>
<proof prover="3"><result status="timeout" time="0.94"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......@@ -809,7 +809,7 @@
</goal>
<goal name="smoke6">
<proof prover="0" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="1"><result status="unknown" time="0.46"/></proof>
<proof prover="1"><result status="unknown" time="0.70"/></proof>
<proof prover="2"><result status="unknown" time="0.01"/></proof>
<proof prover="3"><result status="timeout" time="0.95"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......@@ -829,7 +829,7 @@
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
</goal>
</theory>
<theory name="CheckBV8" sum="ea95238af7ceb1367f64579161f51818">
<theory name="CheckBV8" sum="5a84076f7767168b529d0497e7bce835">
<goal name="ok_zero">
<proof prover="0"><result status="valid" time="0.04" steps="87"/></proof>
<proof prover="1"><result status="valid" time="0.05"/></proof>
......@@ -926,7 +926,7 @@
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="ok13">
<proof prover="1"><result status="valid" time="1.20"/></proof>
<proof prover="1"><result status="valid" time="0.36"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.00"/></proof>
</goal>
......@@ -1018,7 +1018,7 @@
</goal>
<goal name="smoke4">
<proof prover="0" timelimit="1"><result status="timeout" time="1.01"/></proof>
<proof prover="1"><result status="unknown" time="0.54"/></proof>
<proof prover="1"><result status="unknown" time="2.87"/></proof>
<proof prover="2"><result status="unknown" time="0.01"/></proof>
<proof prover="3"><result status="timeout" time="0.91"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="0.99"/></proof>
......@@ -1031,7 +1031,7 @@
</goal>
<goal name="smoke6">
<proof prover="0" timelimit="1"><result status="timeout" time="1.00"/></proof>
<proof prover="1"><result status="unknown" time="0.44"/></proof>
<proof prover="1"><result status="unknown" time="0.69"/></proof>
<proof prover="2"><result status="unknown" time="0.01"/></proof>
<proof prover="3"><result status="timeout" time="0.95"/></proof>
<proof prover="4" timelimit="1"><result status="timeout" time="1.00"/></proof>
......
......@@ -9,7 +9,7 @@
<prover id="4" name="Z3" version="4.4.0" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="5" name="CVC4" version="1.4" alternative="noBV" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../ieee_float.mlw" expanded="true">
<theory name="A" sum="763d6fbd523a80b8e6b4593a898a6c22" expanded="true">
<theory name="A" sum="a93a1fa3d65daf66cf7a87acf3d56e38" expanded="true">
<goal name="ebsb32" expanded="true">
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.05" steps="78"/></proof>
......@@ -26,7 +26,7 @@
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
</theory>
<theory name="M603_018" sum="c1f81e18bfb6e6c677b49d1d9f51b22c" expanded="true">
<theory name="M603_018" sum="2987a1bfa76f8532c0febc5fd2af4290" expanded="true">
<goal name="WP_parameter triplet" expl="VC for triplet">
<transf name="split_goal_wp">
<goal name="WP_parameter triplet.1" expl="1. assertion">
......@@ -34,7 +34,7 @@
<proof prover="4"><result status="valid" time="2.65"/></proof>
</goal>
<goal name="WP_parameter triplet.2" expl="2. assertion">
<proof prover="2"><result status="valid" time="4.95" steps="10731"/></proof>
<proof prover="2"><result status="valid" time="4.95" steps="10733"/></proof>
<proof prover="3"><result status="valid" time="1.86"/></proof>
<proof prover="4"><result status="valid" time="0.79"/></proof>
</goal>
......@@ -83,7 +83,7 @@
<proof prover="0"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="94"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.12"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
<proof prover="5"><result status="valid" time="0.07"/></proof>
</goal>
......@@ -146,7 +146,7 @@
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
</theory>
<theory name="M121_039_nonlinear" sum="419f288237e908f28fe9898d1fbeb90a" expanded="true">
<theory name="M121_039_nonlinear" sum="8be52e3614c2ee493ebf018459463646" expanded="true">
<goal name="WP_parameter test" expl="VC for test" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter test.1" expl="1. assertion">
......@@ -215,15 +215,15 @@
</goal>
<goal name="WP_parameter test.11" expl="11. postcondition">
<proof prover="0"><result status="outofmemory" time="4.39"/></proof>
<proof prover="1"><result status="unknown" time="4.96"/></proof>
<proof prover="1"><result status="unknown" time="9.88"/></proof>
<proof prover="2"><result status="timeout" time="5.00"/></proof>
<proof prover="3"><result status="valid" time="4.32"/></proof>
<proof prover="5"><result status="unknown" time="4.98"/></proof>
<proof prover="5"><result status="unknown" time="9.92"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="LB09_025_conversion" sum="28457788671e9639392ac3a0fb62e20b" expanded="true">
<theory name="LB09_025_conversion" sum="5f455f7ceeded138712dbb274e98d132" expanded="true">
<goal name="WP_parameter fti" expl="VC for fti" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter fti.1" expl="1. postcondition" expanded="true">
......
......@@ -5,7 +5,7 @@
<prover id="0" name="Alt-Ergo" version="1.30" timelimit="6" steplimit="0" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="6" steplimit="0" memlimit="1000"/>
<file name="../tree_of_array.mlw" expanded="true">
<theory name="TreeOfArray" sum="f4eb13eac333d6adcb558cc7ee2bab1b" expanded="true">
<theory name="TreeOfArray" sum="6ae3fd6e37be08a79b018c489b480ceb" expanded="true">
<goal name="WP_parameter tree_of_array_aux" expl="VC for tree_of_array_aux" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter tree_of_array_aux.1" expl="1. postcondition">
......@@ -35,7 +35,7 @@
<proof prover="0"><result status="valid" time="0.17" steps="274"/></proof>
</goal>
<goal name="WP_parameter tree_of_array_aux.7.3" expl="3. postcondition">
<proof prover="0"><result status="valid" time="2.41" steps="1183"/></proof>
<proof prover="0"><result status="valid" time="2.41" steps="1188"/></proof>
</goal>
<goal name="WP_parameter tree_of_array_aux.7.4" expl="4. postcondition">
<proof prover="1"><result status="valid" time="0.13"/></proof>
......
......@@ -42,7 +42,7 @@ let provers =
Whyconf.Mprover.fold
(fun _ p acc ->
try
let d = Driver.load_driver env p.Whyconf.driver [] in
let d = Whyconf.load_driver main env p.Whyconf.driver [] in
(p,d)::acc
with e ->
let p = p.Whyconf.prover in
......
......@@ -85,7 +85,7 @@ let env : Env.env = Env.create_env (Whyconf.loadpath main)
(* loading the Alt-Ergo driver *)
let alt_ergo_driver : Driver.driver =
try
Driver.load_driver env alt_ergo.Whyconf.driver []
Whyconf.load_driver main env alt_ergo.Whyconf.driver []
with e ->
eprintf "Failed to load driver for alt-ergo: %a@."
Exn_printer.exn_printer e;
......
......@@ -11,7 +11,7 @@
<prover id="8" name="Alt-Ergo" version="0.95.2" timelimit="6" steplimit="0" memlimit="1000"/>
<prover id="9" name="Alt-Ergo" version="0.99.1" timelimit="10" steplimit="0" memlimit="0"/>
<file name="../vstte12_bfs.mlw" expanded="true">
<theory name="Graph" sum="143fe0ebe09e8c4b0c8df4088f6fc209" expanded="true">
<theory name="Graph" sum="b66b3356129aeecb34d7b9bcc293f64e" expanded="true">
<goal name="path_nonneg">
<transf name="induction_pr">
<goal name="path_nonneg.1" expl="1.">
......
......@@ -316,9 +316,11 @@ module ToList
use import list.Append
lemma to_list_append:
forall a: array 'a, l m u: int. l <= m <= u ->
to_list a l m ++ to_list a m u = to_list a l u
let rec lemma to_list_append (a: array 'a) (l m u: int)
requires { l <= m <= u }
variant { m - l }
ensures { to_list a l m ++ to_list a m u = to_list a l u }
= if l < m then to_list_append a (l+1) m u
val to_list (a: array 'a) (l u: int) : list 'a
requires { 0 <= l && u <= length a }
......
This diff is collapsed.
......@@ -207,7 +207,7 @@ let get_prover s =
else
raise (Whyconf.ProverAmbiguity (wc,fp,provers))
in
let drv = Driver.load_driver env cp.driver cp.extra_drivers in
let drv = Whyconf.load_driver main env cp.driver cp.extra_drivers in
Hashtbl.add provers s (cp, drv);
cp, drv
......
......@@ -191,10 +191,6 @@ let read_auto_detection_data main =
| Not_found ->
Loc.errorm "provers-detection-data.conf not found at %s@." filename
(* dead code
let provers_found = ref 0
*)
let read_editors main =
let filename = Filename.concat (Whyconf.datadir main)
"provers-detection-data.conf" in
......@@ -403,7 +399,7 @@ let generate_auto_strategies config =
(add_strategy
(add_strategy (add_strategy config inline) split) auto1) auto2
let detect_exec env main data acc exec_name =
let detect_exec env data acc exec_name =
let s = ask_prover_version env exec_name data.version_switch in
match s with
| None -> acc
......@@ -482,9 +478,9 @@ let detect_exec env main data acc exec_name =
{prover = prover;
command = c;
command_steps = c_steps;
driver = Filename.concat (datadir main) data.prover_driver;
driver = data.prover_driver;
editor = data.prover_editor;
in_place = data.prover_in_place;
in_place = data.prover_in_place;
interactive = (match data.kind with ITP -> true | ATP -> false);
extra_options = [];
extra_drivers = [] } in
......@@ -512,8 +508,8 @@ let detect_exec env main data acc exec_name =
else (unknown_version env exec_name data.prover_id prover_config priority;
acc)
let detect_prover env main acc data =
List.fold_left (detect_exec env main data) acc data.execs
let detect_prover env acc data =
List.fold_left (detect_exec env data) acc data.execs
(** add the prover unknown *)
let detect_unknown env detected =
......@@ -541,7 +537,7 @@ let convert_shortcuts env =
let run_auto_detection config =
let main = get_main config in
let l,env = read_auto_detection_data main in
let detected = List.fold_left (detect_prover env main) Mprover.empty l in
let detected = List.fold_left (detect_prover env) Mprover.empty l in
let length_detected = Mprover.cardinal detected in
let detected = detect_unknown env detected in
let length_unsupported_version =
......@@ -595,7 +591,7 @@ let add_prover_binary config id path =
let l = List.filter (fun p -> p.prover_id = id) l in
if l = [] then Loc.errorm "Unknown prover id: %s" id;
let detected = List.fold_left
(fun acc data -> detect_exec env main data acc path) Mprover.empty l in
(fun acc data -> detect_exec env data acc path) Mprover.empty l in
let detected = detect_unknown env detected in
if Mprover.is_empty detected then
Loc.errorm "File %s does not correspond to the prover id %s" path id;
......
......@@ -67,7 +67,7 @@ exception UnknownProp of (string list * string list)
exception FSymExpected of lsymbol
exception PSymExpected of lsymbol
let load_driver = let driver_tag = ref (-1) in fun env file extra_files ->
let load_driver_absolute = let driver_tag = ref (-1) in fun env file extra_files ->
let prelude = ref [] in
let regexps = ref [] in
let exitcodes = ref [] in
......
......@@ -15,10 +15,10 @@
type driver
val load_driver : Env.env -> string -> string list -> driver
val load_driver_absolute : Env.env -> string -> string list -> driver
(** loads a driver from a file
@param env environment to interpret theories
@param string driver file name
@param string driver file name (absolute path name)
@param string list additional driver files containing only theories
*)
......
......@@ -396,8 +396,6 @@ let set_policies rc policy =
in
set_family rc "uninstalled_prover" family
let absolute_filename = Sysutil.absolutize_filename
exception DuplicateShortcut of string
let add_prover_shortcuts acc prover shortcuts =
......@@ -408,7 +406,7 @@ let add_prover_shortcuts acc prover shortcuts =
) acc shortcuts
let load_prover dirname (provers,shortcuts) section =
let load_prover (provers,shortcuts) section =
try
let name = get_string section "name" in
let version = get_string ~default:"" section "version" in
......@@ -423,7 +421,7 @@ let load_prover dirname (provers,shortcuts) section =
{ prover = prover;
command = get_string section "command";
command_steps = get_stringo section "command_steps";
driver = absolute_filename dirname (get_string section "driver");
driver = get_string section "driver";
in_place = get_bool ~default:false section "in_place";
editor = get_string ~default:"" section "editor";
interactive = get_bool ~default:false section "interactive";
......@@ -524,7 +522,7 @@ let load_main dirname section =
raise WrongMagicNumber;
{ libdir = get_string ~default:default_main.libdir section "libdir";
datadir = get_string ~default:default_main.datadir section "datadir";
loadpath = List.map (absolute_filename dirname)
loadpath = List.map (Sysutil.absolutize_filename dirname)