Commit 2149e1de authored by MARCHE Claude's avatar MARCHE Claude
Browse files

update a few example proofs

parent 3f5e6e1f
......@@ -2,155 +2,186 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Alt-Ergo" version="0.99.1" timelimit="5" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="5" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../binary_search.mlw" expanded="true">
<theory name="BinarySearch" sum="2f41cacfb96e90ff7c4f9a1031a4da0c" expanded="true">
<theory name="BinarySearch" sum="e6eedf023b58d27e451cad11aaff7550" expanded="true">
<goal name="VC binary_search" expl="VC for binary_search">
<transf name="split_goal_wp">
<goal name="VC binary_search.1" expl="1. loop invariant init">
<proof prover="0"><result status="valid" time="0.01" steps="0"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="1"/></proof>
</goal>
<goal name="VC binary_search.2" expl="2. loop invariant init">
<proof prover="0"><result status="valid" time="0.02" steps="3"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="VC binary_search.3" expl="3. precondition">
<proof prover="0"><result status="valid" time="0.00" steps="3"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="4"/></proof>
</goal>
<goal name="VC binary_search.4" expl="4. assertion">
<proof prover="0"><result status="valid" time="0.02" steps="7"/></proof>
<proof prover="2"><result status="valid" time="0.01" steps="9"/></proof>
</goal>
<goal name="VC binary_search.5" expl="5. index in array bounds">
<proof prover="0"><result status="valid" time="0.01" steps="5"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="VC binary_search.6" expl="6. index in array bounds">
<proof prover="0"><result status="valid" time="0.02" steps="6"/></proof>
<goal name="VC binary_search.6" expl="6. loop variant decrease">
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC binary_search.7" expl="7. loop invariant preservation">
<proof prover="0"><result status="valid" time="0.02" steps="15"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC binary_search.8" expl="8. loop invariant preservation">
<proof prover="0"><result status="valid" time="0.08" steps="50"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="34"/></proof>
</goal>
<goal name="VC binary_search.9" expl="9. loop variant decrease">
<proof prover="0"><result status="valid" time="0.02" steps="11"/></proof>
<goal name="VC binary_search.9" expl="9. index in array bounds">
<proof prover="2"><result status="valid" time="0.00" steps="7"/></proof>
</goal>
<goal name="VC binary_search.10" expl="10. loop variant decrease">
<proof prover="2"><result status="valid" time="0.00" steps="9"/></proof>
</goal>
<goal name="VC binary_search.11" expl="11. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.00" steps="9"/></proof>
</goal>
<goal name="VC binary_search.12" expl="12. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.03" steps="35"/></proof>
</goal>
<goal name="VC binary_search.10" expl="10. postcondition">
<proof prover="0"><result status="valid" time="0.02" steps="11"/></proof>
<goal name="VC binary_search.13" expl="13. postcondition">
<proof prover="2"><result status="valid" time="0.01" steps="8"/></proof>
</goal>
<goal name="VC binary_search.11" expl="11. exceptional postcondition">
<proof prover="0"><result status="valid" time="0.01" steps="10"/></proof>
<goal name="VC binary_search.14" expl="14. exceptional postcondition">
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="BinarySearchAnyMidPoint" sum="1c7344cbdd4fa3ee18d3bebf0c89856b" expanded="true">
<theory name="BinarySearchAnyMidPoint" sum="139e314f3ab1b35b1060114725e5d122" expanded="true">
<goal name="VC binary_search" expl="VC for binary_search">
<transf name="split_goal_wp">
<goal name="VC binary_search.1" expl="1. loop invariant init">
<proof prover="0"><result status="valid" time="0.01" steps="0"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="1"/></proof>
</goal>
<goal name="VC binary_search.2" expl="2. loop invariant init">
<proof prover="0"><result status="valid" time="0.01" steps="3"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="VC binary_search.3" expl="3. precondition">
<proof prover="0"><result status="valid" time="0.01" steps="3"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="4"/></proof>
</goal>
<goal name="VC binary_search.4" expl="4. index in array bounds">
<proof prover="0"><result status="valid" time="0.01" steps="5"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="VC binary_search.5" expl="5. index in array bounds">
<proof prover="0"><result status="valid" time="0.01" steps="6"/></proof>
<goal name="VC binary_search.5" expl="5. loop variant decrease">
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC binary_search.6" expl="6. loop invariant preservation">
<proof prover="0"><result status="valid" time="0.00" steps="15"/></proof>
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC binary_search.7" expl="7. loop invariant preservation">
<proof prover="0"><result status="valid" time="0.02" steps="42"/></proof>
<proof prover="2"><result status="valid" time="0.01" steps="28"/></proof>
</goal>
<goal name="VC binary_search.8" expl="8. index in array bounds">
<proof prover="2"><result status="valid" time="0.00" steps="7"/></proof>
</goal>
<goal name="VC binary_search.9" expl="9. loop variant decrease">
<proof prover="2"><result status="valid" time="0.00" steps="9"/></proof>
</goal>
<goal name="VC binary_search.10" expl="10. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.00" steps="9"/></proof>
</goal>
<goal name="VC binary_search.8" expl="8. loop variant decrease">
<proof prover="0"><result status="valid" time="0.01" steps="11"/></proof>
<goal name="VC binary_search.11" expl="11. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.00" steps="29"/></proof>
</goal>
<goal name="VC binary_search.9" expl="9. postcondition">
<proof prover="0"><result status="valid" time="0.01" steps="11"/></proof>
<goal name="VC binary_search.12" expl="12. postcondition">
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC binary_search.10" expl="10. exceptional postcondition">
<proof prover="0"><result status="valid" time="0.01" steps="10"/></proof>
<goal name="VC binary_search.13" expl="13. exceptional postcondition">
<proof prover="2"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="BinarySearchInt32" sum="badc1b8bf6577b29c30d0160c2ba5ef3" expanded="true">
<theory name="BinarySearchInt32" sum="f8439b7727009b247777048bf19a45ff" expanded="true">
<goal name="VC binary_search" expl="VC for binary_search">
<transf name="split_goal_wp">
<goal name="VC binary_search.1" expl="1. integer overflow">
<proof prover="0"><result status="valid" time="0.02" steps="68"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="71"/></proof>
</goal>
<goal name="VC binary_search.2" expl="2. integer overflow">
<proof prover="0"><result status="valid" time="0.02" steps="69"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="72"/></proof>
</goal>
<goal name="VC binary_search.3" expl="3. integer overflow">
<proof prover="0"><result status="valid" time="0.02" steps="78"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="79"/></proof>
</goal>
<goal name="VC binary_search.4" expl="4. loop invariant init">
<proof prover="0"><result status="valid" time="0.04" steps="70"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="73"/></proof>
</goal>
<goal name="VC binary_search.5" expl="5. loop invariant init">
<proof prover="0"><result status="valid" time="0.03" steps="73"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="78"/></proof>
</goal>
<goal name="VC binary_search.6" expl="6. integer overflow">
<proof prover="0"><result status="valid" time="0.03" steps="74"/></proof>
<proof prover="2"><result status="valid" time="0.03" steps="77"/></proof>
</goal>
<goal name="VC binary_search.7" expl="7. integer overflow">
<proof prover="0"><result status="valid" time="0.06" steps="125"/></proof>
<proof prover="2"><result status="valid" time="0.07" steps="114"/></proof>
</goal>
<goal name="VC binary_search.8" expl="8. division by zero">
<proof prover="0"><result status="valid" time="0.03" steps="75"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="78"/></proof>
</goal>
<goal name="VC binary_search.9" expl="9. integer overflow">
<proof prover="0"><result status="valid" time="0.21" steps="151"/></proof>
<proof prover="2"><result status="valid" time="0.11" steps="142"/></proof>
</goal>
<goal name="VC binary_search.10" expl="10. integer overflow">
<proof prover="0"><result status="valid" time="0.76" steps="425"/></proof>
<proof prover="2"><result status="valid" time="0.16" steps="192"/></proof>
</goal>
<goal name="VC binary_search.11" expl="11. assertion">
<proof prover="0"><result status="valid" time="0.11" steps="110"/></proof>
<proof prover="2"><result status="valid" time="0.12" steps="161"/></proof>
</goal>
<goal name="VC binary_search.12" expl="12. index in array bounds">
<proof prover="0"><result status="valid" time="0.03" steps="79"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="82"/></proof>
</goal>
<goal name="VC binary_search.13" expl="13. integer overflow">
<proof prover="0"><result status="valid" time="0.03" steps="81"/></proof>
<proof prover="2"><result status="valid" time="0.02" steps="84"/></proof>
</goal>
<goal name="VC binary_search.14" expl="14. integer overflow">
<proof prover="1"><result status="valid" time="0.04"/></proof>
<proof prover="2"><result status="valid" time="0.20" steps="177"/></proof>
</goal>
<goal name="VC binary_search.15" expl="15. loop variant decrease">
<proof prover="2"><result status="valid" time="0.02" steps="86"/></proof>
</goal>
<goal name="VC binary_search.16" expl="16. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.03" steps="86"/></proof>
</goal>
<goal name="VC binary_search.15" expl="15. index in array bounds">
<proof prover="0"><result status="valid" time="0.03" steps="80"/></proof>
<goal name="VC binary_search.17" expl="17. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.18" steps="200"/></proof>
</goal>
<goal name="VC binary_search.16" expl="16. integer overflow">
<proof prover="0"><result status="valid" time="0.03" steps="82"/></proof>
<goal name="VC binary_search.18" expl="18. index in array bounds">
<proof prover="2"><result status="valid" time="0.03" steps="83"/></proof>
</goal>
<goal name="VC binary_search.17" expl="17. integer overflow">
<proof prover="0"><result status="valid" time="0.78" steps="205"/></proof>
<goal name="VC binary_search.19" expl="19. integer overflow">
<proof prover="2"><result status="valid" time="0.02" steps="85"/></proof>
</goal>
<goal name="VC binary_search.18" expl="18. loop invariant preservation">
<proof prover="0"><result status="valid" time="0.21" steps="289"/></proof>
<goal name="VC binary_search.20" expl="20. integer overflow">
<proof prover="2"><result status="valid" time="0.41" steps="180"/></proof>
</goal>
<goal name="VC binary_search.19" expl="19. loop invariant preservation">
<proof prover="1"><result status="valid" time="0.06"/></proof>
<goal name="VC binary_search.21" expl="21. loop variant decrease">
<proof prover="2"><result status="valid" time="0.02" steps="87"/></proof>
</goal>
<goal name="VC binary_search.20" expl="20. loop variant decrease">
<proof prover="0"><result status="valid" time="1.03" steps="1277"/></proof>
<goal name="VC binary_search.22" expl="22. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.03" steps="87"/></proof>
</goal>
<goal name="VC binary_search.21" expl="21. postcondition">
<proof prover="0"><result status="valid" time="0.04" steps="117"/></proof>
<goal name="VC binary_search.23" expl="23. loop invariant preservation">
<proof prover="2"><result status="valid" time="0.15" steps="201"/></proof>
</goal>
<goal name="VC binary_search.22" expl="22. exceptional postcondition">
<proof prover="0"><result status="valid" time="0.03" steps="80"/></proof>
<goal name="VC binary_search.24" expl="24. postcondition">
<proof prover="2"><result status="valid" time="0.07" steps="141"/></proof>
</goal>
<goal name="VC binary_search.25" expl="25. exceptional postcondition">
<proof prover="2"><result status="valid" time="0.03" steps="80"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="BinarySearchBoolean" sum="a3018fd5a00da6568cce022e1cf9030a" expanded="true">
<goal name="VC binary_search" expl="VC for binary_search" expanded="true">
<proof prover="2"><result status="valid" time="0.09" steps="194"/></proof>
</goal>
</theory>
</file>
</why3session>
......@@ -2,52 +2,56 @@
<!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.4.1" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="1.30" timelimit="10" steplimit="0" memlimit="1000"/>
<prover id="3" name="Z3" version="4.5.0" timelimit="10" steplimit="0" memlimit="1000"/>
<file name="../binary_sqrt.mlw" expanded="true">
<theory name="BinarySqrt" sum="5f4e6c07bef7598a45b9412eb4dee2a9" expanded="true">
<theory name="BinarySqrt" sum="3cf37b7c5e1f2871ab46f132d10c2f84" expanded="true">
<goal name="VC sqrt" expl="VC for sqrt" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC sqrt.1" expl="1. assertion">
<goal name="VC sqrt.1" expl="1. assertion" expanded="true">
<proof prover="1"><result status="valid" time="0.00" steps="13"/></proof>
</goal>
<goal name="VC sqrt.2" expl="2. assertion">
<goal name="VC sqrt.2" expl="2. assertion" expanded="true">
<proof prover="1"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC sqrt.3" expl="3. assertion">
<goal name="VC sqrt.3" expl="3. assertion" expanded="true">
<proof prover="1"><result status="valid" time="0.00" steps="10"/></proof>
</goal>
<goal name="VC sqrt.4" expl="4. assertion">
<goal name="VC sqrt.4" expl="4. assertion" expanded="true">
<proof prover="1"><result status="valid" time="0.02" steps="26"/></proof>
</goal>
<goal name="VC sqrt.5" expl="5. assertion">
<goal name="VC sqrt.5" expl="5. assertion" expanded="true">
<proof prover="1"><result status="valid" time="0.02" steps="27"/></proof>
</goal>
<goal name="VC sqrt.6" expl="6. variant decrease">
<goal name="VC sqrt.6" expl="6. variant decrease" expanded="true">
<proof prover="1"><result status="valid" time="0.02" steps="33"/></proof>
</goal>
<goal name="VC sqrt.7" expl="7. precondition">
<goal name="VC sqrt.7" expl="7. precondition" expanded="true">
<proof prover="1"><result status="valid" time="0.00" steps="12"/></proof>
</goal>
<goal name="VC sqrt.8" expl="8. precondition">
<goal name="VC sqrt.8" expl="8. precondition" expanded="true">
<proof prover="1"><result status="valid" time="0.00" steps="12"/></proof>
</goal>
<goal name="VC sqrt.9" expl="9. precondition">
<goal name="VC sqrt.9" expl="9. precondition" expanded="true">
<proof prover="1"><result status="valid" time="0.22" steps="127"/></proof>
</goal>
<goal name="VC sqrt.10" expl="10. postcondition" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC sqrt.10.1" expl="1. VC for sqrt">
<proof prover="1"><result status="valid" time="0.00" steps="10"/></proof>
<goal name="VC sqrt.10.1" expl="1. VC for sqrt" expanded="true">
<proof prover="1" timelimit="5"><result status="valid" time="0.01" steps="16"/></proof>
</goal>
<goal name="VC sqrt.10.2" expl="2. VC for sqrt">
<proof prover="3"><result status="valid" time="0.01"/></proof>
<goal name="VC sqrt.10.2" expl="2. VC for sqrt" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC sqrt.10.2.1" expl="1. VC for sqrt" expanded="true">
<proof prover="0"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC sqrt.10.2.2" expl="2. VC for sqrt" expanded="true">
<proof prover="1" timelimit="5"><result status="valid" time="0.00" steps="16"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="VC sqrt.11" expl="11. postcondition">
<proof prover="1"><result status="valid" time="0.01" steps="18"/></proof>
</goal>
</transf>
</goal>
<goal name="VC sqrt_main" expl="VC for sqrt_main" expanded="true">
......
......@@ -2,20 +2,20 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="3" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="0" name="Z3" version="4.4.1" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="9" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
<file name="../decrease1.mlw" expanded="true">
<theory name="Decrease1" sum="ada34eb3bebc2acf740281e95648456b" expanded="true">
<theory name="Decrease1" sum="a2ab71223278916b25ab96c60cc79d85" expanded="true">
<goal name="VC decrease1_induction" expl="VC for decrease1_induction" expanded="true">
<proof prover="9"><result status="valid" time="0.02" steps="35"/></proof>
</goal>
<goal name="VC search" expl="VC for search">
<transf name="split_goal_wp">
<goal name="VC search" expl="VC for search" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC search.1" expl="1. loop invariant init">
<proof prover="9"><result status="valid" time="0.00" steps="2"/></proof>
</goal>
<goal name="VC search.2" expl="2. loop invariant init">
<proof prover="9"><result status="valid" time="0.00" steps="2"/></proof>
<proof prover="9"><result status="valid" time="0.00" steps="3"/></proof>
</goal>
<goal name="VC search.3" expl="3. index in array bounds">
<proof prover="9"><result status="valid" time="0.00" steps="4"/></proof>
......@@ -35,9 +35,8 @@
<goal name="VC search.8" expl="8. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.00" steps="7"/></proof>
</goal>
<goal name="VC search.9" expl="9. loop invariant preservation">
<proof prover="3"><result status="valid" time="0.01"/></proof>
<proof prover="9"><result status="unknown" time="1.10"/></proof>
<goal name="VC search.9" expl="9. loop invariant preservation" expanded="true">
<proof prover="0"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="VC search.10" expl="10. loop variant decrease">
<proof prover="9"><result status="valid" time="0.00" steps="7"/></proof>
......@@ -46,15 +45,15 @@
<proof prover="9"><result status="valid" time="0.00" steps="7"/></proof>
</goal>
<goal name="VC search.12" expl="12. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.00" steps="12"/></proof>
<proof prover="9"><result status="valid" time="0.00" steps="13"/></proof>
</goal>
<goal name="VC search.13" expl="13. postcondition">
<proof prover="9"><result status="valid" time="0.00" steps="9"/></proof>
</goal>
</transf>
</goal>
<goal name="VC search_rec" expl="VC for search_rec">
<transf name="split_goal_wp">
<goal name="VC search_rec" expl="VC for search_rec" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="VC search_rec.1" expl="1. index in array bounds">
<proof prover="9"><result status="valid" time="0.00" steps="4"/></proof>
</goal>
......@@ -76,18 +75,8 @@
<goal name="VC search_rec.7" expl="7. precondition">
<proof prover="9"><result status="valid" time="0.00" steps="6"/></proof>
</goal>
<goal name="VC search_rec.8" expl="8. postcondition">
<proof prover="9"><result status="valid" time="0.00" steps="8"/></proof>
</goal>
<goal name="VC search_rec.9" expl="9. postcondition">
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="9"><result status="unknown" time="1.31"/></proof>
</goal>
<goal name="VC search_rec.10" expl="10. postcondition">
<proof prover="9"><result status="valid" time="0.01" steps="41"/></proof>
</goal>
<goal name="VC search_rec.11" expl="11. postcondition">
<proof prover="9"><result status="valid" time="0.00" steps="5"/></proof>
<goal name="VC search_rec.8" expl="8. postcondition" expanded="true">
<proof prover="0"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
......
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