Commit 211eb279 authored by MARCHE Claude's avatar MARCHE Claude

update proof of a few examples

parent 3ef4b170
......@@ -16,14 +16,11 @@ linked_list_rev.mlw
optimal_replay.mlw
queens.mlw
random_access_list.mlw
residual.mlw
rightmostbittrick.mlw
sudoku.mlw
sum_of_digits.mlw
topological_sorting.mlw
tortoise_and_hare.mlw
tree_height.mlw
vacid_0_sparse_array.mlw
verifythis_fm2012_treedel.mlw
verifythis_PrefixSumRec.mlw
vstte10_inverting.mlw
......
This diff is collapsed.
......@@ -2,83 +2,58 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Z3" version="4.5.0" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="Z3" version="4.5.0" alternative="noBV" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="3" name="Alt-Ergo" version="1.01" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="5" name="CVC4" version="1.4" alternative="noBV" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="7" name="Z3" version="4.3.2" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="CVC4" version="1.4" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="4" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="6" name="Z3" version="4.4.1" timelimit="1" steplimit="0" memlimit="1000"/>
<file name="../rightmostbittrick.mlw" expanded="true">
<theory name="Rmbt" sum="6921903cc2c053fed86c54f3da5b22f0" expanded="true">
<theory name="Rmbt" sum="aced46f0e399e4cb6385532e7044b3c4" expanded="true">
<goal name="VC rightmost_position_set" expl="VC for rightmost_position_set" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC rightmost_position_set.1" expl="1. loop invariant init">
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.05" steps="72"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="7"><result status="valid" time="0.58"/></proof>
<goal name="VC rightmost_position_set.1" expl="1. loop invariant init" expanded="true">
<proof prover="4"><result status="valid" time="0.02" steps="73"/></proof>
</goal>
<goal name="VC rightmost_position_set.2" expl="2. loop variant decrease">
<proof prover="2"><result status="valid" time="0.06"/></proof>
<proof prover="3"><result status="valid" time="0.12" steps="104"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<goal name="VC rightmost_position_set.2" expl="2. loop variant decrease" expanded="true">
<proof prover="4"><result status="valid" time="0.20" steps="265"/></proof>
</goal>
<goal name="VC rightmost_position_set.3" expl="3. loop invariant preservation" expanded="true">
<proof prover="0"><result status="valid" time="0.20"/></proof>
<proof prover="2"><result status="valid" time="0.15"/></proof>
<proof prover="5"><result status="valid" time="0.07"/></proof>
<proof prover="4"><result status="valid" time="0.09" steps="171"/></proof>
</goal>
<goal name="VC rightmost_position_set.4" expl="4. postcondition" expanded="true">
<proof prover="0"><result status="valid" time="0.04"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="6"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="VC rightmost_position_set.5" expl="5. postcondition">
<proof prover="1"><result status="valid" time="0.00"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.05" steps="73"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="7"><result status="valid" time="0.00"/></proof>
<goal name="VC rightmost_position_set.5" expl="5. postcondition" expanded="true">
<proof prover="4"><result status="valid" time="0.01" steps="74"/></proof>
</goal>
<goal name="VC rightmost_position_set.6" expl="6. postcondition" expanded="true">
<proof prover="0"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="0.02"/></proof>
<proof prover="6"><result status="valid" time="0.04"/></proof>
</goal>
</transf>
</goal>
<goal name="VC rightmost_bit_trick" expl="VC for rightmost_bit_trick" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC rightmost_bit_trick.1" expl="1. precondition">
<proof prover="1"><result status="valid" time="0.00"/></proof>
<proof prover="2"><result status="valid" time="0.00"/></proof>
<proof prover="3"><result status="valid" time="0.04" steps="70"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="7"><result status="valid" time="0.00"/></proof>
<goal name="VC rightmost_bit_trick.1" expl="1. precondition" expanded="true">
<proof prover="4"><result status="valid" time="0.01" steps="71"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.2" expl="2. assertion">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<goal name="VC rightmost_bit_trick.2" expl="2. assertion" expanded="true">
<proof prover="6"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.3" expl="3. postcondition">
<proof prover="2"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.07" steps="78"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
<goal name="VC rightmost_bit_trick.3" expl="3. postcondition" expanded="true">
<proof prover="4"><result status="valid" time="0.02" steps="79"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.4" expl="4. postcondition">
<proof prover="3"><result status="valid" time="0.02" steps="80"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
<goal name="VC rightmost_bit_trick.4" expl="4. postcondition" expanded="true">
<proof prover="4"><result status="valid" time="0.07" steps="122"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.5" expl="5. postcondition">
<proof prover="3"><result status="valid" time="0.02" steps="78"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<goal name="VC rightmost_bit_trick.5" expl="5. postcondition" expanded="true">
<proof prover="4"><result status="valid" time="0.04" steps="99"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.6" expl="6. postcondition">
<proof prover="2"><result status="valid" time="0.43"/></proof>
<goal name="VC rightmost_bit_trick.6" expl="6. postcondition" expanded="true">
<proof prover="4"><result status="valid" time="0.28" steps="372"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.7" expl="7. postcondition">
<goal name="VC rightmost_bit_trick.7" expl="7. postcondition" expanded="true">
<proof prover="2"><result status="valid" time="0.27"/></proof>
</goal>
<goal name="VC rightmost_bit_trick.8" expl="8. postcondition">
<proof prover="3"><result status="valid" time="0.15" steps="113"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
<goal name="VC rightmost_bit_trick.8" expl="8. postcondition" expanded="true">
<proof prover="4"><result status="valid" time="0.10" steps="156"/></proof>
</goal>
</transf>
</goal>
......
......@@ -92,6 +92,8 @@ back +-+-+-+-------------------+
(* sparse_array invariant *)
a.card = a.length ->
forall i: int. 0 <= i < a.length -> is_elt a i
by MI.injective a.back.elts a.card
/\ MI.range a.back.elts a.card
let set (a: sparse_array 'a) i v
requires { 0 <= i < length a }
......
......@@ -2,83 +2,86 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Coq" version="8.6" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="CVC3" version="2.4.1" timelimit="17" steplimit="0" memlimit="1000"/>
<prover id="3" name="Z3" version="3.2" timelimit="17" steplimit="0" memlimit="1000"/>
<prover id="5" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="4" name="Z3" version="4.4.1" timelimit="1" steplimit="0" memlimit="1000"/>
<file name="../vacid_0_sparse_array.mlw" expanded="true">
<theory name="SparseArray" sum="f180fa00de7bc39519572aca507e77f8" expanded="true">
<goal name="WP_parameter create" expl="VC for create">
<proof prover="5"><result status="valid" time="0.02" steps="11"/></proof>
<theory name="SparseArray" sum="61ac12b09d5b4441dd1a6ef4fa4ab1e6" expanded="true">
<goal name="VC create" expl="VC for create">
<proof prover="2"><result status="valid" time="0.00" steps="25"/></proof>
</goal>
<goal name="WP_parameter test" expl="VC for test">
<proof prover="5"><result status="valid" time="0.18" steps="64"/></proof>
<goal name="VC test" expl="VC for test">
<proof prover="2"><result status="valid" time="0.02" steps="35"/></proof>
</goal>
<goal name="WP_parameter get" expl="VC for get">
<proof prover="5"><result status="valid" time="0.07" steps="22"/></proof>
<goal name="VC get" expl="VC for get">
<proof prover="2"><result status="valid" time="0.01" steps="28"/></proof>
</goal>
<goal name="permutation">
<proof prover="0" edited="vacid_0_sparse_array_2_SparseArray_permutation_1.v"><result status="valid" time="0.64"/></proof>
</goal>
<goal name="WP_parameter set" expl="VC for set">
<transf name="split_goal_wp">
<goal name="WP_parameter set.1" expl="1. index in array bounds">
<proof prover="5" timelimit="17"><result status="valid" time="0.01" steps="10"/></proof>
<goal name="permutation.1" expl="1.">
<proof prover="2"><result status="valid" time="0.01" steps="23"/></proof>
</goal>
<goal name="WP_parameter set.2" expl="2. type invariant">
<proof prover="5"><result status="valid" time="0.02" steps="14"/></proof>
<goal name="permutation.2" expl="2.">
<proof prover="2"><result status="valid" time="0.01" steps="50"/></proof>
</goal>
<goal name="WP_parameter set.3" expl="3. type invariant">
<proof prover="5"><result status="valid" time="0.01" steps="11"/></proof>
<goal name="permutation.3" expl="3.">
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter set.4" expl="4. precondition">
<proof prover="5"><result status="valid" time="0.03" steps="11"/></proof>
</transf>
</goal>
<goal name="VC set" expl="VC for set">
<transf name="split_goal_wp">
<goal name="VC set.1" expl="1. index in array bounds">
<proof prover="2"><result status="valid" time="0.00" steps="11"/></proof>
</goal>
<goal name="WP_parameter set.5" expl="5. assertion">
<proof prover="1" timelimit="5"><result status="valid" time="0.09"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="unknown" time="0.03"/></proof>
<goal name="VC set.2" expl="2. type invariant">
<proof prover="2"><result status="valid" time="0.08" steps="255"/></proof>
</goal>
<goal name="WP_parameter set.6" expl="6. index in array bounds">
<proof prover="5"><result status="valid" time="0.02" steps="14"/></proof>
<goal name="VC set.3" expl="3. precondition">
<proof prover="2"><result status="valid" time="0.00" steps="21"/></proof>
</goal>
<goal name="WP_parameter set.7" expl="7. index in array bounds">
<proof prover="5"><result status="valid" time="0.03" steps="16"/></proof>
<goal name="VC set.4" expl="4. assertion">
<proof prover="2"><result status="valid" time="0.08" steps="171"/></proof>
</goal>
<goal name="WP_parameter set.8" expl="8. type invariant">
<proof prover="1"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<goal name="VC set.5" expl="5. index in array bounds">
<proof prover="2"><result status="valid" time="0.01" steps="27"/></proof>
</goal>
<goal name="WP_parameter set.9" expl="9. type invariant">
<proof prover="5"><result status="valid" time="0.04" steps="19"/></proof>
<goal name="VC set.6" expl="6. index in array bounds">
<proof prover="2"><result status="valid" time="0.02" steps="58"/></proof>
</goal>
<goal name="WP_parameter set.10" expl="10. type invariant">
<proof prover="5"><result status="valid" time="0.04" steps="19"/></proof>
<goal name="VC set.7" expl="7. type invariant">
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter set.11" expl="11. postcondition">
<goal name="VC set.8" expl="8. postcondition">
<transf name="split_goal_wp">
<goal name="WP_parameter set.11.1" expl="1. VC for set">
<proof prover="5" timelimit="17"><result status="valid" time="0.10" steps="41"/></proof>
<goal name="VC set.8.1" expl="1. VC for set">
<proof prover="2"><result status="valid" time="0.04" steps="123"/></proof>
</goal>
<goal name="WP_parameter set.11.2" expl="2. VC for set">
<proof prover="1"><result status="valid" time="0.52"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="5" timelimit="17"><result status="unknown" time="1.12"/></proof>
<goal name="VC set.8.2" expl="2. VC for set">
<proof prover="2"><result status="valid" time="0.69" steps="550"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter set.12" expl="12. postcondition">
<proof prover="5"><result status="valid" time="0.17" steps="56"/></proof>
<goal name="VC set.9" expl="9. postcondition">
<proof prover="2"><result status="valid" time="0.06" steps="104"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="Harness" sum="a4766a15c155e10c8525ab932ec189a0" expanded="true">
<goal name="WP_parameter harness" expl="VC for harness">
<proof prover="5"><result status="valid" time="0.39" steps="249"/></proof>
<theory name="Harness" sum="6729282620a564e10dbaa46c8cef1fd0" expanded="true">
<goal name="VC default" expl="VC for default">
<proof prover="2"><result status="valid" time="0.01" steps="1"/></proof>
</goal>
<goal name="VC c1" expl="VC for c1">
<proof prover="2"><result status="valid" time="0.01" steps="1"/></proof>
</goal>
<goal name="VC c2" expl="VC for c2">
<proof prover="2"><result status="valid" time="0.00" steps="1"/></proof>
</goal>
<goal name="VC harness" expl="VC for harness">
<proof prover="2"><result status="valid" time="0.81" steps="2039"/></proof>
</goal>
<goal name="WP_parameter bench" expl="VC for bench">
<proof prover="5" memlimit="4000"><result status="valid" time="0.06" steps="43"/></proof>
<goal name="VC bench" expl="VC for bench">
<proof prover="2"><result status="valid" time="0.02" steps="172"/></proof>
</goal>
</theory>
</file>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment