Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 2eb4ca28 authored by Léon Gondelman's avatar Léon Gondelman
Browse files

Fixed and proved theory list

parent 1975bbfd
No related branches found
No related tags found
No related merge requests found
Showing
with 1768 additions and 355 deletions
......@@ -41,7 +41,7 @@
</transf>
</goal>
</theory>
<theory name="IntListCursor" sum="6a86c159c9325e79070f5efce8debf6a">
<theory name="IntListCursor" sum="3be4879452794a876cc462ddd755a3de">
<goal name="WP_parameter create" expl="VC for create">
<proof prover="1"><result status="valid" time="0.02"/></proof>
</goal>
......@@ -52,7 +52,7 @@
<proof prover="1"><result status="valid" time="0.02"/></proof>
</goal>
</theory>
<theory name="TestListCursor" sum="650f68ba6185c1da3bf7ea3cb4c3d7e3">
<theory name="TestListCursor" sum="c8893f4016f1f1e3c221e4142f94eed3">
<goal name="WP_parameter list_sum" expl="VC for list_sum">
<transf name="split_goal_wp">
<goal name="WP_parameter list_sum.1" expl="1. loop invariant init">
......@@ -85,7 +85,7 @@
</transf>
</goal>
</theory>
<theory name="IntArrayCursor" sum="5e45c85fd72714bc8c3150cb7084a6c1" expanded="true">
<theory name="IntArrayCursor" sum="c77cddb83b83b50f0453ae017ebaaabf" expanded="true">
<goal name="WP_parameter create" expl="VC for create">
<proof prover="1"><result status="valid" time="0.01"/></proof>
</goal>
......@@ -126,7 +126,7 @@
</transf>
</goal>
</theory>
<theory name="TestArrayCursor" sum="6c32bfa8b7b8e063fd2046eb493d82bf">
<theory name="TestArrayCursor" sum="1818e28aa2ccadd10a21d99b8b296439">
<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"/></proof>
</goal>
......
No preview for this file type
File added
......@@ -7,7 +7,9 @@ module InsertionSort
predicate le elt elt
clone relations.TotalPreOrder with type t = elt, predicate rel = le
clone export list.Sorted with type t = elt, predicate le = le
clone export list.Sorted with type t = elt, predicate le = le,
goal Transitive.Trans
use import list.List
use import list.Permut
......
......@@ -5,7 +5,10 @@
<prover id="0" name="Alt-Ergo" version="0.95.2" timelimit="10" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.3" timelimit="10" memlimit="1000"/>
<file name="../insertion_sort_list.mlw" expanded="true">
<theory name="InsertionSort" sum="a68ab62da2fba48733e0e9f8699021f8" expanded="true">
<theory name="InsertionSort" sum="18eee291d33ec7eb040007ff367abb3c" expanded="true">
<goal name="Transitive.Trans" expanded="true">
<proof prover="0" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter insert" expl="VC for insert" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter insert.1" expl="1. postcondition">
......@@ -27,10 +30,10 @@
<proof prover="0"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter insert.7" expl="7. postcondition">
<proof prover="0"><result status="valid" time="0.50"/></proof>
<proof prover="0"><result status="valid" time="0.58"/></proof>
</goal>
<goal name="WP_parameter insert.8" expl="8. postcondition" expanded="true">
<proof prover="1"><result status="valid" time="0.20"/></proof>
<proof prover="1"><result status="valid" time="0.42"/></proof>
</goal>
</transf>
</goal>
......
No preview for this file type
......@@ -4,30 +4,26 @@
<why3session shape_version="4">
<prover id="0" name="Coq" version="8.4pl4" timelimit="5" memlimit="0"/>
<prover id="1" name="CVC3" version="2.4.1" timelimit="5" memlimit="4000"/>
<prover id="2" name="Alt-Ergo" version="0.95.1" timelimit="5" memlimit="0"/>
<prover id="3" name="Z3" version="2.19" timelimit="5" memlimit="0"/>
<prover id="4" name="CVC3" version="2.2" timelimit="5" memlimit="0"/>
<prover id="5" name="Z3" version="3.2" timelimit="5" memlimit="4000"/>
<prover id="6" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="4000"/>
<prover id="7" name="CVC4" version="1.3" timelimit="5" memlimit="4000"/>
<prover id="2" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="4000"/>
<prover id="3" name="CVC4" version="1.3" timelimit="5" memlimit="4000"/>
<file name="../linked_list_rev.mlw" expanded="true">
<theory name="ListReverse" sum="d41d8cd98f00b204e9800998ecf8427e" expanded="true">
</theory>
<theory name="InPlaceRev" sum="3c1c96a3f0506ade10b9b7f2051e8742" expanded="true">
<theory name="InPlaceRev" sum="fd2061728df4ef10ceafdbfcc7847ac8" expanded="true">
<goal name="list_seg_frame" expanded="true">
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_frame_1.v"><result status="valid" time="1.13"/></proof>
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_frame_1.v" obsolete="true"><result status="valid" time="1.13"/></proof>
</goal>
<goal name="list_seg_functional" expanded="true">
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_functional_1.v"><result status="valid" time="1.08"/></proof>
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_functional_1.v" obsolete="true"><result status="valid" time="1.08"/></proof>
</goal>
<goal name="list_seg_sublistl" expanded="true">
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_sublistl_1.v"><result status="valid" time="1.05"/></proof>
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_sublistl_1.v" obsolete="true"><result status="valid" time="1.05"/></proof>
</goal>
<goal name="list_seg_no_repet" expanded="true">
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_no_repet_1.v"><result status="valid" time="1.07"/></proof>
<proof prover="0" edited="linked_list_rev_WP_InPlaceRev_list_seg_no_repet_1.v" obsolete="true"><result status="valid" time="1.07"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse" expl="VC for in_place_reverse" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter in_place_reverse" expl="VC for in_place_reverse">
<transf name="split_goal_wp">
<goal name="WP_parameter in_place_reverse.1" expl="1. loop invariant init">
<proof prover="2" memlimit="1000"><result status="valid" time="0.02"/></proof>
</goal>
......@@ -39,36 +35,28 @@
</goal>
<goal name="WP_parameter in_place_reverse.4" expl="4. loop invariant init">
<proof prover="1" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="2"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
<proof prover="5" memlimit="0"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.5" expl="5. assertion">
<proof prover="2"><result status="valid" time="0.20"/></proof>
<proof prover="2" memlimit="1000"><result status="valid" time="0.36"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.6" expl="6. loop invariant preservation">
<proof prover="2" memlimit="1000"><result status="valid" time="0.19"/></proof>
<proof prover="2" memlimit="1000"><result status="valid" time="0.33"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.7" expl="7. loop invariant preservation">
<proof prover="2" memlimit="1000"><result status="valid" time="0.09"/></proof>
<proof prover="2" memlimit="1000"><result status="valid" time="0.15"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.8" expl="8. loop invariant preservation">
<proof prover="1"><result status="valid" time="0.12"/></proof>
<proof prover="5"><result status="valid" time="0.10"/></proof>
<proof prover="7"><result status="valid" time="0.13"/></proof>
<proof prover="3"><result status="valid" time="0.13"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.9" expl="9. loop invariant preservation">
<proof prover="1" memlimit="1000"><result status="valid" time="0.09"/></proof>
<proof prover="2" memlimit="1000"><result status="valid" time="0.91"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.10" expl="10. loop variant decrease">
<proof prover="6"><result status="valid" time="0.10"/></proof>
<proof prover="2"><result status="valid" time="0.10"/></proof>
</goal>
<goal name="WP_parameter in_place_reverse.11" expl="11. postcondition">
<proof prover="1" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="2"><result status="valid" time="0.22"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
......
No preview for this file type
......@@ -15,7 +15,8 @@ module Elt
type elt
predicate le elt elt
clone relations.TotalPreOrder with type t = elt, predicate rel = le
clone export list.Sorted with type t = elt, predicate le = le
clone export list.Sorted with type t = elt, predicate le = le,
goal Transitive.Trans
end
......
......@@ -2,577 +2,1210 @@
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Eprover" version="1.6" timelimit="6" memlimit="1000"/>
<prover id="1" name="CVC3" version="2.4.1" timelimit="6" memlimit="1000"/>
<prover id="2" name="Z3" version="2.19" timelimit="6" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.4" timelimit="6" memlimit="1000"/>
<prover id="4" name="Spass" version="3.7" timelimit="10" memlimit="1000"/>
<prover id="5" name="Z3" version="4.3.1" timelimit="10" memlimit="1000"/>
<prover id="6" name="CVC3" version="2.2" timelimit="6" memlimit="1000"/>
<prover id="7" name="Z3" version="3.2" timelimit="5" memlimit="1000"/>
<prover id="8" name="Alt-Ergo" version="0.95.2" timelimit="6" memlimit="1000"/>
<prover id="0" name="CVC3" version="2.4.1" timelimit="6" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="6" memlimit="1000"/>
<prover id="2" name="Z3" version="4.3.1" timelimit="10" memlimit="1000"/>
<prover id="3" name="Alt-Ergo" version="0.95.2" timelimit="6" memlimit="1000"/>
<file name="../mergesort_list.mlw" expanded="true">
<theory name="Elt" sum="d41d8cd98f00b204e9800998ecf8427e">
<theory name="Elt" sum="f5c537c37e9fac9baf0147e1e940244b">
<goal name="Transitive.Trans">
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
</goal>
</theory>
<theory name="Merge" sum="4da394421f517d7531b7670efde9979c" expanded="true">
<theory name="Merge" sum="ec4620a645a6ec4bd6489df3c251bb0a">
<goal name="WP_parameter merge" expl="VC for merge">
<transf name="split_goal_wp">
<goal name="WP_parameter merge.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.2" expl="2. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.3" expl="3. postcondition">
<proof prover="1"><result status="valid" time="0.01"/></proof>
<proof prover="6"><result status="valid" time="0.01"/></proof>
<proof prover="0"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.4" expl="4. postcondition">
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.5" expl="5. postcondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.6" expl="6. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.7" expl="7. variant decrease">
<proof prover="8" timelimit="5"><result status="valid" time="0.01"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.8" expl="8. precondition">
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.9" expl="9. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="1.38"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="2.03"/></proof>
</goal>
<goal name="WP_parameter merge.10" expl="10. postcondition">
<proof prover="3"><result status="valid" time="0.05"/></proof>
<proof prover="8"><result status="valid" time="0.00"/></proof>
<proof prover="1"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="WP_parameter merge.11" expl="11. variant decrease">
<proof prover="8"><result status="valid" time="0.00"/></proof>
<proof prover="3"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="WP_parameter merge.12" expl="12. precondition">
<proof prover="3"><result status="valid" time="0.04"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.04"/></proof>
<proof prover="2"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.13" expl="13. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="1.48"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="2.27"/></proof>
</goal>
<goal name="WP_parameter merge.14" expl="14. postcondition">
<proof prover="3"><result status="valid" time="0.31"/></proof>
<proof prover="1"><result status="valid" time="0.31"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="EfficientMerge" sum="b880335875d65fb958fdcc145ef37b26" expanded="true">
<theory name="EfficientMerge" sum="0114e3fc05a68e58b01610126d62c13f">
<goal name="sorted_reverse_cons">
<proof prover="1"><result status="valid" time="0.28"/></proof>
<proof prover="5" timelimit="6"><result status="valid" time="0.34"/></proof>
<proof prover="0"><result status="valid" time="0.48"/></proof>
<proof prover="2" timelimit="6"><result status="valid" time="0.34"/></proof>
</goal>
<goal name="WP_parameter merge_aux" expl="VC for merge_aux">
<transf name="split_goal_wp">
<goal name="WP_parameter merge_aux.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter merge_aux.2" expl="2. postcondition">
<transf name="split_goal_wp">
<goal name="WP_parameter merge_aux.2.1" expl="1. postcondition">
<proof prover="0"><result status="valid" time="0.05"/></proof>
<proof prover="1"><result status="valid" time="0.10"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
<proof prover="5" timelimit="6"><result status="valid" time="0.02"/></proof>
<proof prover="8"><result status="valid" time="0.08"/></proof>
<proof prover="0"><result status="valid" time="0.10"/></proof>
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="2" timelimit="6"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.08"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter merge_aux.3" expl="3. postcondition">
<proof prover="8"><result status="valid" time="0.09"/></proof>
<proof prover="3"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter merge_aux.4" expl="4. postcondition">
<proof prover="3"><result status="valid" time="0.75"/></proof>
<proof prover="1"><result status="valid" time="0.80"/></proof>
</goal>
<goal name="WP_parameter merge_aux.5" expl="5. postcondition">
<proof prover="8"><result status="valid" time="0.06"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter merge_aux.6" expl="6. postcondition">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter merge_aux.7" expl="7. variant decrease">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge_aux.8" expl="8. precondition">
<proof prover="3"><result status="valid" time="0.25"/></proof>
<proof prover="1"><result status="valid" time="0.26"/></proof>
<transf name="split_goal_wp">
<goal name="WP_parameter merge_aux.8.1" expl="1.">
<proof prover="4"><result status="valid" time="0.07"/></proof>
<proof prover="5"><result status="valid" time="0.44"/></proof>
<proof prover="8"><result status="valid" time="1.48"/></proof>
<proof prover="2"><result status="valid" time="0.59"/></proof>
<proof prover="3"><result status="valid" time="1.39"/></proof>
</goal>
<goal name="WP_parameter merge_aux.8.2" expl="2.">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge_aux.8.3" expl="3.">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter merge_aux.9" expl="9. precondition">
<proof prover="3"><result status="valid" time="0.06"/></proof>
<proof prover="5"><result status="valid" time="2.41"/></proof>
<proof prover="8"><result status="valid" time="0.09"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
<proof prover="2"><result status="valid" time="2.60"/></proof>
<proof prover="3"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter merge_aux.10" expl="10. precondition">
<proof prover="3"><result status="valid" time="0.38"/></proof>
<proof prover="5"><result status="valid" time="0.92"/></proof>
<proof prover="1"><result status="valid" time="0.40"/></proof>
<proof prover="2"><result status="valid" time="1.13"/></proof>
</goal>
<goal name="WP_parameter merge_aux.11" expl="11. postcondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge_aux.12" expl="12. postcondition">
<proof prover="8"><result status="valid" time="2.14"/></proof>
<proof prover="3"><result status="valid" time="2.46"/></proof>
</goal>
<goal name="WP_parameter merge_aux.13" expl="13. variant decrease">
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="8"><result status="valid" time="0.06"/></proof>
<proof prover="0"><result status="valid" time="0.03"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter merge_aux.14" expl="14. precondition">
<proof prover="0"><result status="valid" time="0.55"/></proof>
<proof prover="3"><result status="valid" time="0.14"/></proof>
<proof prover="8"><result status="valid" time="4.06"/></proof>
<proof prover="1"><result status="valid" time="0.14"/></proof>
<proof prover="3"><result status="valid" time="4.06"/></proof>
</goal>
<goal name="WP_parameter merge_aux.15" expl="15. precondition">
<proof prover="3"><result status="valid" time="0.47"/></proof>
<proof prover="1"><result status="valid" time="0.47"/></proof>
</goal>
<goal name="WP_parameter merge_aux.16" expl="16. precondition">
<proof prover="8"><result status="valid" time="0.14"/></proof>
<proof prover="3"><result status="valid" time="0.14"/></proof>
</goal>
<goal name="WP_parameter merge_aux.17" expl="17. postcondition">
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge_aux.18" expl="18. postcondition">
<proof prover="1"><result status="valid" time="0.53"/></proof>
<proof prover="0"><result status="valid" time="0.53"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter merge" expl="VC for merge">
<transf name="split_goal_wp">
<goal name="WP_parameter merge.1" expl="1. precondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.2" expl="2. precondition">
<proof prover="3"><result status="valid" time="0.03"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="2"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.3" expl="3. precondition">
<proof prover="3"><result status="valid" time="0.04"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.04"/></proof>
<proof prover="2"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.4" expl="4. postcondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="Mergesort" sum="e0e0999cbafa269942aac80ff1eaf32b" expanded="true">
<theory name="Mergesort" sum="0105dba18167ed706164be02a49a48f2">
<goal name="WP_parameter split" expl="VC for split">
<transf name="split_goal_wp">
<goal name="WP_parameter split.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter split.2" expl="2. variant decrease">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter split.3" expl="3. precondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter split.4" expl="4. postcondition">
<transf name="split_goal_wp">
<goal name="WP_parameter split.4.1" expl="1.">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter split.4.2" expl="2.">
<proof prover="3"><result status="valid" time="0.81"/></proof>
<proof prover="1"><result status="valid" time="0.81"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter split.5" expl="5. precondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter split.6" expl="6. postcondition">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mergesort" expl="VC for mergesort">
<transf name="split_goal_wp">
<goal name="WP_parameter mergesort.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.00"/></proof>
<proof prover="3"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="WP_parameter mergesort.2" expl="2. postcondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter mergesort.3" expl="3. precondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter mergesort.4" expl="4. variant decrease">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter mergesort.5" expl="5. variant decrease">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter mergesort.6" expl="6. precondition">
<transf name="split_goal_wp">
<goal name="WP_parameter mergesort.6.1" expl="1.">
<proof prover="8"><result status="valid" time="0.00"/></proof>
<proof prover="3"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="WP_parameter mergesort.6.2" expl="2.">
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="8" timelimit="5"><result status="valid" time="0.01"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mergesort.7" expl="7. postcondition">
<transf name="split_goal_wp">
<goal name="WP_parameter mergesort.7.1" expl="1.">
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="8" timelimit="5"><result status="valid" time="0.01"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter mergesort.7.2" expl="2.">
<proof prover="3" timelimit="5"><result status="valid" time="0.18"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.18"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
<theory name="OCamlMergesort" sum="821d5233cbffe7cb9b87614067b1d446" expanded="true">
<theory name="OCamlMergesort" sum="3f35dbbdc9d39afb0ba6416cea2813a1" expanded="true">
<goal name="sorted_reverse_cons">
<proof prover="1" timelimit="10"><result status="valid" time="0.38"/></proof>
<proof prover="0" timelimit="10"><result status="valid" time="0.38"/></proof>
</goal>
<goal name="sorted_rev_append">
<proof prover="5" timelimit="5"><result status="valid" time="0.10"/></proof>
<proof prover="7"><result status="valid" time="0.09"/></proof>
<proof prover="2" timelimit="5"><result status="valid" time="0.10"/></proof>
</goal>
<goal name="WP_parameter rev_merge" expl="VC for rev_merge">
<transf name="split_goal_wp">
<goal name="WP_parameter rev_merge.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge.2" expl="2. postcondition">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter rev_merge.3" expl="3. postcondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter rev_merge.4" expl="4. postcondition">
<proof prover="3"><result status="valid" time="0.63"/></proof>
<proof prover="1"><result status="valid" time="0.89"/></proof>
</goal>
<goal name="WP_parameter rev_merge.5" expl="5. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge.6" expl="6. postcondition">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.16"/></proof>
</goal>
<goal name="WP_parameter rev_merge.7" expl="7. variant decrease">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge.8" expl="8. precondition">
<proof prover="8"><result status="valid" time="4.29"/></proof>
<proof prover="3"><result status="valid" time="4.29"/></proof>
</goal>
<goal name="WP_parameter rev_merge.9" expl="9. precondition">
<proof prover="8"><result status="valid" time="0.09"/></proof>
<proof prover="3"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter rev_merge.10" expl="10. precondition">
<proof prover="3" timelimit="5"><result status="valid" time="0.36"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.36"/></proof>
</goal>
<goal name="WP_parameter rev_merge.11" expl="11. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge.12" expl="12. postcondition">
<proof prover="8"><result status="valid" time="2.08"/></proof>
<proof prover="3"><result status="valid" time="2.55"/></proof>
</goal>
<goal name="WP_parameter rev_merge.13" expl="13. variant decrease">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter rev_merge.14" expl="14. precondition">
<proof prover="8"><result status="valid" time="3.88"/></proof>
<proof prover="3"><result status="valid" time="3.88"/></proof>
</goal>
<goal name="WP_parameter rev_merge.15" expl="15. precondition">
<proof prover="8"><result status="valid" time="1.00"/></proof>
<proof prover="3"><result status="valid" time="1.35"/></proof>
</goal>
<goal name="WP_parameter rev_merge.16" expl="16. precondition">
<proof prover="8"><result status="valid" time="0.04"/></proof>
<proof prover="3"><result status="valid" time="0.17"/></proof>
</goal>
<goal name="WP_parameter rev_merge.17" expl="17. postcondition">
<proof prover="8"><result status="valid" time="0.04"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter rev_merge.18" expl="18. postcondition">
<proof prover="3"><result status="valid" time="0.08"/></proof>
<proof prover="1"><result status="valid" time="0.08"/></proof>
</goal>
</transf>
</goal>
<goal name="sorted_reverse_mem">
<proof prover="3"><result status="valid" time="0.75"/></proof>
<goal name="sorted_reverse_mem" expanded="true">
<metas
expanded="true">
<ts_pos name="real" arity="0" id="2"
ip_theory="BuiltIn">
<ip_library name="why3"/>
<ip_library name="BuiltIn"/>
<ip_qualid name="real"/>
</ts_pos>
<ts_pos name="bool" arity="0" id="3"
ip_theory="Bool">
<ip_library name="why3"/>
<ip_library name="Bool"/>
<ip_qualid name="bool"/>
</ts_pos>
<ts_pos name="tuple0" arity="0" id="20"
ip_theory="Tuple0">
<ip_library name="why3"/>
<ip_library name="Tuple0"/>
<ip_qualid name="tuple0"/>
</ts_pos>
<ts_pos name="unit" arity="0" id="21"
ip_theory="Unit">
<ip_library name="why3"/>
<ip_library name="Unit"/>
<ip_qualid name="unit"/>
</ts_pos>
<ts_pos name="&apos;mark" arity="0" id="54"
ip_theory="Mark">
<ip_library name="why3"/>
<ip_library name="Mark"/>
<ip_qualid name="&apos;mark"/>
</ts_pos>
<ts_pos name="tuple2" arity="2" id="1058"
ip_theory="Tuple2">
<ip_library name="why3"/>
<ip_library name="Tuple2"/>
<ip_qualid name="tuple2"/>
</ts_pos>
<ls_pos name="infix =" id="10"
ip_theory="BuiltIn">
<ip_library name="why3"/>
<ip_library name="BuiltIn"/>
<ip_qualid name="infix ="/>
</ls_pos>
<ls_pos name="zero" id="342"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="zero"/>
</ls_pos>
<ls_pos name="one" id="343"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="one"/>
</ls_pos>
<ls_pos name="infix &lt;" id="344"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix &lt;"/>
</ls_pos>
<ls_pos name="infix &gt;" id="347"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix &gt;"/>
</ls_pos>
<ls_pos name="infix &lt;=" id="356"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix &lt;="/>
</ls_pos>
<ls_pos name="infix +" id="1513"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix +"/>
</ls_pos>
<ls_pos name="prefix -" id="1514"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="prefix -"/>
</ls_pos>
<ls_pos name="infix *" id="1515"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix *"/>
</ls_pos>
<ls_pos name="infix -" id="1563"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix -"/>
</ls_pos>
<ls_pos name="infix &gt;=" id="1583"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="infix &gt;="/>
</ls_pos>
<ls_pos name="length" id="2396"
ip_theory="Length">
<ip_library name="list"/>
<ip_qualid name="length"/>
</ls_pos>
<ls_pos name="rev_append" id="4044"
ip_theory="RevAppend">
<ip_library name="list"/>
<ip_qualid name="rev_append"/>
</ls_pos>
<ls_pos name="num_occ" id="4333"
ip_theory="NumOcc">
<ip_library name="list"/>
<ip_qualid name="num_occ"/>
</ls_pos>
<ls_pos name="permut" id="4375"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="permut"/>
</ls_pos>
<ls_pos name="le" id="5828"
ip_theory="OCamlMergesort">
<ip_qualid name="le"/>
</ls_pos>
<pr_pos name="Assoc" id="1516"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CommutativeGroup"/>
<ip_qualid name="Assoc"/>
</pr_pos>
<pr_pos name="Unit_def_l" id="1523"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CommutativeGroup"/>
<ip_qualid name="Unit_def_l"/>
</pr_pos>
<pr_pos name="Unit_def_r" id="1526"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CommutativeGroup"/>
<ip_qualid name="Unit_def_r"/>
</pr_pos>
<pr_pos name="Inv_def_l" id="1529"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CommutativeGroup"/>
<ip_qualid name="Inv_def_l"/>
</pr_pos>
<pr_pos name="Inv_def_r" id="1532"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CommutativeGroup"/>
<ip_qualid name="Inv_def_r"/>
</pr_pos>
<pr_pos name="Comm" id="1535"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CommutativeGroup"/>
<ip_qualid name="Comm"/>
<ip_qualid name="Comm"/>
</pr_pos>
<pr_pos name="Assoc" id="1540"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Assoc"/>
<ip_qualid name="Assoc"/>
</pr_pos>
<pr_pos name="Mul_distr_l" id="1547"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Mul_distr_l"/>
</pr_pos>
<pr_pos name="Mul_distr_r" id="1554"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Mul_distr_r"/>
</pr_pos>
<pr_pos name="Comm" id="1572"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Comm"/>
<ip_qualid name="Comm"/>
</pr_pos>
<pr_pos name="Unitary" id="1577"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Unitary"/>
</pr_pos>
<pr_pos name="NonTrivialRing" id="1580"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="NonTrivialRing"/>
</pr_pos>
<pr_pos name="Refl" id="1592"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Refl"/>
</pr_pos>
<pr_pos name="Trans" id="1595"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Trans"/>
</pr_pos>
<pr_pos name="Antisymm" id="1602"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Antisymm"/>
</pr_pos>
<pr_pos name="Total" id="1607"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="Total"/>
</pr_pos>
<pr_pos name="ZeroLessOne" id="1612"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="ZeroLessOne"/>
</pr_pos>
<pr_pos name="CompatOrderAdd" id="1613"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CompatOrderAdd"/>
</pr_pos>
<pr_pos name="CompatOrderMult" id="1620"
ip_theory="Int">
<ip_library name="int"/>
<ip_qualid name="CompatOrderMult"/>
</pr_pos>
<pr_pos name="Length_nonnegative" id="2406"
ip_theory="Length">
<ip_library name="list"/>
<ip_qualid name="Length_nonnegative"/>
</pr_pos>
<pr_pos name="Length_nil" id="2409"
ip_theory="Length">
<ip_library name="list"/>
<ip_qualid name="Length_nil"/>
</pr_pos>
<pr_pos name="Append_assoc" id="3946"
ip_theory="Append">
<ip_library name="list"/>
<ip_qualid name="Append_assoc"/>
</pr_pos>
<pr_pos name="Append_l_nil" id="3953"
ip_theory="Append">
<ip_library name="list"/>
<ip_qualid name="Append_l_nil"/>
</pr_pos>
<pr_pos name="Append_length" id="3956"
ip_theory="Append">
<ip_library name="list"/>
<ip_qualid name="Append_length"/>
</pr_pos>
<pr_pos name="mem_append" id="3961"
ip_theory="Append">
<ip_library name="list"/>
<ip_qualid name="mem_append"/>
</pr_pos>
<pr_pos name="mem_decomp" id="3968"
ip_theory="Append">
<ip_library name="list"/>
<ip_qualid name="mem_decomp"/>
</pr_pos>
<pr_pos name="reverse_append" id="4010"
ip_theory="Reverse">
<ip_library name="list"/>
<ip_qualid name="reverse_append"/>
</pr_pos>
<pr_pos name="reverse_cons" id="4017"
ip_theory="Reverse">
<ip_library name="list"/>
<ip_qualid name="reverse_cons"/>
</pr_pos>
<pr_pos name="cons_reverse" id="4022"
ip_theory="Reverse">
<ip_library name="list"/>
<ip_qualid name="cons_reverse"/>
</pr_pos>
<pr_pos name="reverse_reverse" id="4027"
ip_theory="Reverse">
<ip_library name="list"/>
<ip_qualid name="reverse_reverse"/>
</pr_pos>
<pr_pos name="Reverse_length" id="4035"
ip_theory="Reverse">
<ip_library name="list"/>
<ip_qualid name="Reverse_length"/>
</pr_pos>
<pr_pos name="rev_append_append_l" id="4061"
ip_theory="RevAppend">
<ip_library name="list"/>
<ip_qualid name="rev_append_append_l"/>
</pr_pos>
<pr_pos name="rev_append_length" id="4068"
ip_theory="RevAppend">
<ip_library name="list"/>
<ip_qualid name="rev_append_length"/>
</pr_pos>
<pr_pos name="rev_append_def" id="4073"
ip_theory="RevAppend">
<ip_library name="list"/>
<ip_qualid name="rev_append_def"/>
</pr_pos>
<pr_pos name="rev_append_append_r" id="4078"
ip_theory="RevAppend">
<ip_library name="list"/>
<ip_qualid name="rev_append_append_r"/>
</pr_pos>
<pr_pos name="Num_Occ_Positive" id="4352"
ip_theory="NumOcc">
<ip_library name="list"/>
<ip_qualid name="Num_Occ_Positive"/>
</pr_pos>
<pr_pos name="Mem_Num_Occ" id="4357"
ip_theory="NumOcc">
<ip_library name="list"/>
<ip_qualid name="Mem_Num_Occ"/>
</pr_pos>
<pr_pos name="Append_Num_Occ" id="4362"
ip_theory="NumOcc">
<ip_library name="list"/>
<ip_qualid name="Append_Num_Occ"/>
</pr_pos>
<pr_pos name="reverse_num_occ" id="4369"
ip_theory="NumOcc">
<ip_library name="list"/>
<ip_qualid name="reverse_num_occ"/>
</pr_pos>
<pr_pos name="Permut_refl" id="4387"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_refl"/>
</pr_pos>
<pr_pos name="Permut_sym" id="4390"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_sym"/>
</pr_pos>
<pr_pos name="Permut_trans" id="4395"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_trans"/>
</pr_pos>
<pr_pos name="Permut_cons" id="4402"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_cons"/>
</pr_pos>
<pr_pos name="Permut_swap" id="4409"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_swap"/>
</pr_pos>
<pr_pos name="Permut_cons_append" id="4416"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_cons_append"/>
</pr_pos>
<pr_pos name="Permut_assoc" id="4423"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_assoc"/>
</pr_pos>
<pr_pos name="Permut_append" id="4430"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_append"/>
</pr_pos>
<pr_pos name="Permut_append_swap" id="4439"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_append_swap"/>
</pr_pos>
<pr_pos name="Permut_mem" id="4444"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_mem"/>
</pr_pos>
<pr_pos name="Permut_length" id="4451"
ip_theory="Permut">
<ip_library name="list"/>
<ip_qualid name="Permut_length"/>
</pr_pos>
<pr_pos name="Refl" id="5829"
ip_theory="OCamlMergesort">
<ip_qualid name="TotalPreOrder"/>
<ip_qualid name="Refl"/>
</pr_pos>
<pr_pos name="Trans" id="5832"
ip_theory="OCamlMergesort">
<ip_qualid name="TotalPreOrder"/>
<ip_qualid name="Trans"/>
</pr_pos>
<pr_pos name="Total" id="5839"
ip_theory="OCamlMergesort">
<ip_qualid name="TotalPreOrder"/>
<ip_qualid name="Total"/>
</pr_pos>
<pr_pos name="sorted_mem" id="5867"
ip_theory="OCamlMergesort">
<ip_qualid name="sorted_mem"/>
</pr_pos>
<pr_pos name="sorted_reverse_cons" id="5883"
ip_theory="OCamlMergesort">
<ip_qualid name="sorted_reverse_cons"/>
</pr_pos>
<pr_pos name="sorted_rev_append" id="5893"
ip_theory="OCamlMergesort">
<ip_qualid name="sorted_rev_append"/>
</pr_pos>
<meta name="remove_logic">
<meta_arg_ls id="10"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="342"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="343"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="344"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="347"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="356"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="1513"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="1514"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="1515"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="1563"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="1583"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="2396"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="4044"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="4333"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="4375"/>
</meta>
<meta name="remove_logic">
<meta_arg_ls id="5828"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1516"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1523"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1526"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1529"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1532"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1535"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1540"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1547"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1554"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1572"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1577"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1580"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1592"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1595"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1602"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1607"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1612"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1613"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="1620"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="2406"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="2409"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="3946"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="3953"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="3956"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="3961"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="3968"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4010"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4017"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4022"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4027"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4035"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4061"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4068"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4073"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4078"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4352"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4357"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4362"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4369"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4387"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4390"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4395"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4402"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4409"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4416"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4423"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4430"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4439"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4444"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="4451"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="5829"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="5832"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="5839"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="5867"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="5883"/>
</meta>
<meta name="remove_prop">
<meta_arg_pr id="5893"/>
</meta>
<meta name="remove_type">
<meta_arg_ts id="2"/>
</meta>
<meta name="remove_type">
<meta_arg_ts id="3"/>
</meta>
<meta name="remove_type">
<meta_arg_ts id="20"/>
</meta>
<meta name="remove_type">
<meta_arg_ts id="21"/>
</meta>
<meta name="remove_type">
<meta_arg_ts id="54"/>
</meta>
<meta name="remove_type">
<meta_arg_ts id="1058"/>
</meta>
<goal name="sorted_reverse_mem" expanded="true">
<transf name="eliminate_builtin" expanded="true">
<goal name="sorted_reverse_mem.1" expl="1." expanded="true">
<proof prover="3" timelimit="5"><result status="valid" time="0.11"/></proof>
</goal>
</transf>
</goal>
</metas>
</goal>
<goal name="sorted_reverse_cons2">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="0"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev" expl="VC for rev_merge_rev">
<transf name="split_goal_wp">
<goal name="WP_parameter rev_merge_rev.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.2" expl="2. postcondition">
<transf name="split_goal_wp">
<goal name="WP_parameter rev_merge_rev.2.1" expl="1. postcondition">
<proof prover="1" timelimit="5"><result status="valid" time="0.10"/></proof>
<proof prover="0" timelimit="5"><result status="valid" time="0.10"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter rev_merge_rev.3" expl="3. postcondition">
<proof prover="1"><result status="valid" time="0.21"/></proof>
<proof prover="3"><result status="valid" time="0.18"/></proof>
<proof prover="0"><result status="valid" time="0.21"/></proof>
<proof prover="1"><result status="valid" time="0.18"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.4" expl="4. postcondition">
<proof prover="1" timelimit="5"><result status="valid" time="0.26"/></proof>
<proof prover="0" timelimit="5"><result status="valid" time="0.42"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.5" expl="5. postcondition">
<proof prover="8"><result status="valid" time="0.16"/></proof>
<proof prover="3"><result status="valid" time="0.16"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.6" expl="6. postcondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.06"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.7" expl="7. variant decrease">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.8" expl="8. precondition">
<proof prover="3" timelimit="10"><result status="valid" time="0.05"/></proof>
<proof prover="1" timelimit="10"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.9" expl="9. precondition">
<proof prover="3"><result status="valid" time="0.06"/></proof>
<proof prover="1"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.10" expl="10. precondition">
<proof prover="3"><result status="valid" time="0.63"/></proof>
<proof prover="1"><result status="valid" time="0.59"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.11" expl="11. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.12" expl="12. postcondition">
<proof prover="8" timelimit="5"><result status="valid" time="2.21"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="1.86"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.13" expl="13. variant decrease">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.14" expl="14. precondition">
<proof prover="3" timelimit="5"><result status="valid" time="0.34"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.34"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.15" expl="15. precondition">
<proof prover="8"><result status="valid" time="3.59"/></proof>
<proof prover="3"><result status="valid" time="3.59"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.16" expl="16. precondition">
<proof prover="8"><result status="valid" time="0.04"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.17" expl="17. postcondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_merge_rev.18" expl="18. postcondition">
<proof prover="1" timelimit="5"><result status="valid" time="0.52"/></proof>
<proof prover="0" timelimit="5"><result status="valid" time="0.52"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter prefix_length" expl="VC for prefix_length">
<proof prover="8"><result status="valid" time="0.04"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter prefix_append" expl="VC for prefix_append">
<proof prover="8"><result status="valid" time="1.12"/></proof>
<proof prover="3"><result status="valid" time="1.12"/></proof>
</goal>
<goal name="WP_parameter chop" expl="VC for chop">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter sort" expl="VC for sort">
<transf name="split_goal_wp">
<goal name="WP_parameter sort.1" expl="1. postcondition">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter sort.2" expl="2. postcondition">
<proof prover="8"><result status="valid" time="4.54"/></proof>
<proof prover="3"><result status="valid" time="5.35"/></proof>
</goal>
<goal name="WP_parameter sort.3" expl="3. unreachable point">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter sort.4" expl="4. unreachable point">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter sort.5" expl="5. postcondition">
<proof prover="3"><result status="valid" time="0.03"/></proof>
<proof prover="1"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter sort.6" expl="6. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="2.54"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="2.77"/></proof>
</goal>
<goal name="WP_parameter sort.7" expl="7. postcondition">
<proof prover="3"><result status="valid" time="0.14"/></proof>
<proof prover="1"><result status="valid" time="0.14"/></proof>
</goal>
<goal name="WP_parameter sort.8" expl="8. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="2.95"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="2.95"/></proof>
</goal>
<goal name="WP_parameter sort.9" expl="9. postcondition">
<proof prover="3"><result status="valid" time="0.11"/></proof>
<proof prover="1"><result status="valid" time="0.11"/></proof>
</goal>
<goal name="WP_parameter sort.10" expl="10. postcondition">
<proof prover="3"><result status="valid" time="2.29"/></proof>
<proof prover="1"><result status="valid" time="2.29"/></proof>
</goal>
<goal name="WP_parameter sort.11" expl="11. postcondition">
<proof prover="3"><result status="valid" time="0.08"/></proof>
<proof prover="1"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="WP_parameter sort.12" expl="12. postcondition">
<proof prover="3"><result status="valid" time="2.76"/></proof>
<proof prover="1"><result status="valid" time="3.20"/></proof>
</goal>
<goal name="WP_parameter sort.13" expl="13. unreachable point">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter sort.14" expl="14. unreachable point">
<proof prover="8"><result status="valid" time="0.05"/></proof>
<proof prover="3"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="WP_parameter sort.15" expl="15. unreachable point">
<proof prover="1"><result status="valid" time="0.12"/></proof>
<proof prover="2"><result status="valid" time="0.03"/></proof>
<proof prover="7" timelimit="6"><result status="valid" time="0.02"/></proof>
<proof prover="0"><result status="valid" time="0.12"/></proof>
</goal>
<goal name="WP_parameter sort.16" expl="16. division by zero">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter sort.17" expl="17. precondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter sort.18" expl="18. assertion">
<proof prover="1" timelimit="5"><result status="valid" time="0.09"/></proof>
<proof prover="7"><result status="valid" time="0.41"/></proof>
<proof prover="0" timelimit="5"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter sort.19" expl="19. variant decrease">
<proof prover="8"><result status="valid" time="0.20"/></proof>
<proof prover="3"><result status="valid" time="0.20"/></proof>
</goal>
<goal name="WP_parameter sort.20" expl="20. precondition">
<proof prover="8"><result status="valid" time="0.22"/></proof>
<proof prover="3"><result status="valid" time="0.22"/></proof>
</goal>
<goal name="WP_parameter sort.21" expl="21. variant decrease">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter sort.22" expl="22. precondition">
<proof prover="8"><result status="valid" time="0.24"/></proof>
<proof prover="3"><result status="valid" time="0.39"/></proof>
</goal>
<goal name="WP_parameter sort.23" expl="23. precondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter sort.24" expl="24. precondition">
<proof prover="8"><result status="valid" time="0.06"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter sort.25" expl="25. precondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter sort.26" expl="26. postcondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.01"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter sort.27" expl="27. postcondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.04"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.04"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter rev_sort" expl="VC for rev_sort">
<transf name="split_goal_wp">
<goal name="WP_parameter rev_sort.1" expl="1. postcondition">
<proof prover="3"><result status="valid" time="0.10"/></proof>
<proof prover="1"><result status="valid" time="0.10"/></proof>
</goal>
<goal name="WP_parameter rev_sort.2" expl="2. postcondition">
<proof prover="8"><result status="valid" time="3.09"/></proof>
<proof prover="3"><result status="valid" time="3.77"/></proof>
</goal>
<goal name="WP_parameter rev_sort.3" expl="3. unreachable point">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.4" expl="4. unreachable point">
<proof prover="3"><result status="valid" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.5" expl="5. postcondition">
<proof prover="3"><result status="valid" time="0.38"/></proof>
<proof prover="1"><result status="valid" time="2.83"/></proof>
</goal>
<goal name="WP_parameter rev_sort.6" expl="6. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="2.14"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="2.62"/></proof>
</goal>
<goal name="WP_parameter rev_sort.7" expl="7. postcondition">
<proof prover="3"><result status="valid" time="0.49"/></proof>
<proof prover="1"><result status="valid" time="0.49"/></proof>
</goal>
<goal name="WP_parameter rev_sort.8" expl="8. postcondition">
<proof prover="3"><result status="valid" time="2.99"/></proof>
<proof prover="1"><result status="valid" time="2.99"/></proof>
</goal>
<goal name="WP_parameter rev_sort.9" expl="9. postcondition">
<proof prover="3"><result status="valid" time="0.42"/></proof>
<proof prover="1"><result status="valid" time="2.72"/></proof>
</goal>
<goal name="WP_parameter rev_sort.10" expl="10. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="2.10"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="2.61"/></proof>
</goal>
<goal name="WP_parameter rev_sort.11" expl="11. postcondition">
<proof prover="3"><result status="valid" time="0.48"/></proof>
<proof prover="1"><result status="valid" time="0.64"/></proof>
</goal>
<goal name="WP_parameter rev_sort.12" expl="12. postcondition">
<proof prover="3" timelimit="5"><result status="valid" time="2.62"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="3.04"/></proof>
</goal>
<goal name="WP_parameter rev_sort.13" expl="13. unreachable point">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.14" expl="14. unreachable point">
<proof prover="8"><result status="valid" time="0.04"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter rev_sort.15" expl="15. unreachable point">
<proof prover="6"><result status="valid" time="0.08"/></proof>
<proof prover="7" timelimit="6"><result status="valid" time="0.02"/></proof>
<proof prover="2" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter rev_sort.16" expl="16. division by zero">
<proof prover="8"><result status="valid" time="0.01"/></proof>
<proof prover="3"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter rev_sort.17" expl="17. precondition">
<proof prover="8"><result status="valid" time="0.03"/></proof>
<proof prover="3"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter rev_sort.18" expl="18. assertion">
<proof prover="1" timelimit="5"><result status="valid" time="0.09"/></proof>
<proof prover="7"><result status="valid" time="0.41"/></proof>
<proof prover="0" timelimit="5"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter rev_sort.19" expl="19. variant decrease">
<proof prover="8"><result status="valid" time="0.31"/></proof>
<proof prover="3"><result status="valid" time="0.31"/></proof>
</goal>
<goal name="WP_parameter rev_sort.20" expl="20. precondition">
<proof prover="8"><result status="valid" time="0.22"/></proof>
<proof prover="3"><result status="valid" time="0.22"/></proof>
</goal>
<goal name="WP_parameter rev_sort.21" expl="21. variant decrease">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.22" expl="22. precondition">
<proof prover="8"><result status="valid" time="0.24"/></proof>
<proof prover="3"><result status="valid" time="0.37"/></proof>
</goal>
<goal name="WP_parameter rev_sort.23" expl="23. precondition">
<proof prover="8"><result status="valid" time="0.02"/></proof>
<proof prover="3"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.24" expl="24. precondition">
<proof prover="8"><result status="valid" time="0.06"/></proof>
<proof prover="3"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter rev_sort.25" expl="25. precondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.26" expl="26. postcondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter rev_sort.27" expl="27. postcondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.03"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.03"/></proof>
</goal>
</transf>
</goal>
<goal name="permut_prefix">
<transf name="induction_ty_lex">
<goal name="permut_prefix.1" expl="1.">
<proof prover="8" timelimit="5"><result status="valid" time="0.06"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.06"/></proof>
</goal>
</transf>
</goal>
......@@ -583,20 +1216,20 @@
<goal name="WP_parameter mergesort.1.1" expl="1.">
<transf name="induction_ty_lex">
<goal name="WP_parameter mergesort.1.1.1" expl="1.">
<proof prover="8" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mergesort.1.2" expl="2.">
<proof prover="8" timelimit="5"><result status="valid" time="0.01"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mergesort.2" expl="2. precondition">
<proof prover="8" timelimit="5"><result status="valid" time="0.02"/></proof>
<proof prover="3" timelimit="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.3" expl="3. postcondition">
<proof prover="8"><result status="valid" time="0.04"/></proof>
<proof prover="3"><result status="valid" time="0.04"/></proof>
</goal>
</transf>
</goal>
......
No preview for this file type
......@@ -16,7 +16,8 @@ module MergesortQueue
type elt
predicate le elt elt
clone relations.TotalPreOrder with type t = elt, predicate rel = le
clone export list.Sorted with type t = elt, predicate le = le
clone export list.Sorted with type t = elt, predicate le = le,
goal Transitive.Trans
let merge (q1: t elt) (q2: t elt) (q: t elt)
requires { q.elts = Nil /\ sorted q1.elts /\ sorted q2.elts }
......
......@@ -3,276 +3,265 @@
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="Coq" version="8.4pl4" timelimit="10" memlimit="0"/>
<prover id="1" name="CVC4" version="1.2" timelimit="5" memlimit="1000"/>
<prover id="2" name="Z3" version="4.2" timelimit="6" memlimit="1000"/>
<prover id="3" name="Eprover" version="1.6" timelimit="16" memlimit="1000"/>
<prover id="4" name="CVC3" version="2.4.1" timelimit="6" memlimit="1000"/>
<prover id="5" name="Alt-Ergo" version="0.95.1" timelimit="5" memlimit="1000"/>
<prover id="6" name="CVC4" version="1.0" timelimit="6" memlimit="1000"/>
<prover id="7" name="Z3" version="4.3.1" timelimit="6" memlimit="1000"/>
<prover id="8" name="CVC3" version="2.2" timelimit="6" memlimit="1000"/>
<prover id="9" name="Alt-Ergo" version="0.95.2" timelimit="6" memlimit="1000"/>
<prover id="10" name="CVC4" version="1.3" timelimit="6" memlimit="1000"/>
<prover id="1" name="CVC3" version="2.4.1" timelimit="6" memlimit="1000"/>
<prover id="2" name="CVC4" version="1.4" timelimit="5" memlimit="1000"/>
<prover id="3" name="Z3" version="4.3.1" timelimit="6" memlimit="1000"/>
<prover id="4" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="1000"/>
<prover id="5" name="CVC4" version="1.3" timelimit="6" memlimit="1000"/>
<file name="../mergesort_queue.mlw" expanded="true">
<theory name="MergesortQueue" sum="8e2735a6f5c2c40b04a184b3e9c92fc5" expanded="true">
<goal name="WP_parameter merge" expl="VC for merge">
<transf name="split_goal_wp">
<theory name="MergesortQueue" sum="8aa10354f7f83f902fb57f5fd2cf5aa4" expanded="true">
<goal name="Transitive.Trans">
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge" expl="VC for merge" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter merge.1" expl="1. loop invariant init">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.2" expl="2. loop invariant init">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.3" expl="3. loop invariant init">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.4" expl="4. loop invariant init">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.5" expl="5. precondition">
<proof prover="5"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.6" expl="6. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.7" expl="7. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.8" expl="8. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.9" expl="9. loop invariant preservation">
<proof prover="4" timelimit="10" memlimit="0"><result status="valid" time="0.03"/></proof>
<proof prover="1" timelimit="10" memlimit="0"><result status="valid" time="0.03"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.10" expl="10. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.11" expl="11. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.12" expl="12. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.37"/></proof>
<proof prover="5"><result status="valid" time="0.58"/></proof>
</goal>
<goal name="WP_parameter merge.13" expl="13. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.53"/></proof>
<proof prover="5"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="WP_parameter merge.14" expl="14. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.12"/></proof>
<proof prover="4"><result status="valid" time="0.12"/></proof>
</goal>
<goal name="WP_parameter merge.15" expl="15. loop invariant preservation">
<proof prover="1"><result status="valid" time="0.10"/></proof>
<proof prover="4" timelimit="5"><result status="valid" time="0.09"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter merge.16" expl="16. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.17" expl="17. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.18" expl="18. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.19" expl="19. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.20" expl="20. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.39"/></proof>
<proof prover="5"><result status="valid" time="0.39"/></proof>
</goal>
<goal name="WP_parameter merge.21" expl="21. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.53"/></proof>
<proof prover="5"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="WP_parameter merge.22" expl="22. loop invariant preservation">
<proof prover="4"><result status="valid" time="2.48"/></proof>
<proof prover="1"><result status="valid" time="2.99"/></proof>
</goal>
<goal name="WP_parameter merge.23" expl="23. loop invariant preservation">
<proof prover="1"><result status="valid" time="0.12"/></proof>
<proof prover="4" timelimit="5"><result status="valid" time="0.29"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.29"/></proof>
</goal>
<goal name="WP_parameter merge.24" expl="24. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter merge.25" expl="25. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.26" expl="26. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.40"/></proof>
<proof prover="5"><result status="valid" time="0.40"/></proof>
</goal>
<goal name="WP_parameter merge.27" expl="27. loop invariant preservation">
<proof prover="4"><result status="valid" time="2.59"/></proof>
<proof prover="1"><result status="valid" time="3.15"/></proof>
</goal>
<goal name="WP_parameter merge.28" expl="28. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.58"/></proof>
<proof prover="5"><result status="valid" time="0.09"/></proof>
</goal>
<goal name="WP_parameter merge.29" expl="29. loop invariant preservation">
<proof prover="0" edited="mergesort_queue_MergesortQueue_WP_parameter_merge_3.v"><result status="valid" time="1.02"/></proof>
<proof prover="0" edited="mergesort_queue_MergesortQueue_WP_parameter_merge_3.v" obsolete="true"><result status="valid" time="1.02"/></proof>
</goal>
<goal name="WP_parameter merge.30" expl="30. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter merge.31" expl="31. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.32" expl="32. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.54"/></proof>
<proof prover="5"><result status="valid" time="0.54"/></proof>
</goal>
<goal name="WP_parameter merge.33" expl="33. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.14"/></proof>
<proof prover="4"><result status="valid" time="0.14"/></proof>
</goal>
<goal name="WP_parameter merge.34" expl="34. loop invariant preservation">
<proof prover="10"><result status="valid" time="0.55"/></proof>
<proof prover="5"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="WP_parameter merge.35" expl="35. loop invariant preservation">
<proof prover="1"><result status="valid" time="0.11"/></proof>
<proof prover="4" timelimit="5"><result status="valid" time="1.07"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="1.30"/></proof>
</goal>
<goal name="WP_parameter merge.36" expl="36. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.37" expl="37. precondition">
<proof prover="5"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.38" expl="38. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.39" expl="39. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.40" expl="40. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="10"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.41" expl="41. loop invariant preservation">
<proof prover="4" timelimit="10" memlimit="0"><result status="valid" time="0.06"/></proof>
<proof prover="1" timelimit="10" memlimit="0"><result status="valid" time="0.06"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.42" expl="42. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.43" expl="43. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.44" expl="44. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.45" expl="45. precondition">
<proof prover="5"><result status="valid" time="0.01"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.46" expl="46. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.47" expl="47. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.03"/></proof>
<proof prover="10"><result status="valid" time="0.04"/></proof>
<proof prover="4"><result status="valid" time="0.03"/></proof>
<proof prover="5"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter merge.48" expl="48. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.04"/></proof>
<proof prover="10"><result status="valid" time="0.04"/></proof>
<proof prover="4"><result status="valid" time="0.04"/></proof>
<proof prover="5"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter merge.49" expl="49. loop invariant preservation">
<proof prover="4" timelimit="10" memlimit="0"><result status="valid" time="0.06"/></proof>
<proof prover="1" timelimit="10" memlimit="0"><result status="valid" time="0.06"/></proof>
<proof prover="4"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter merge.50" expl="50. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.04"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.51" expl="51. precondition">
<proof prover="5"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="WP_parameter merge.52" expl="52. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.53" expl="53. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.03"/></proof>
<proof prover="10"><result status="valid" time="0.04"/></proof>
<proof prover="4"><result status="valid" time="0.03"/></proof>
<proof prover="5"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter merge.54" expl="54. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.03"/></proof>
<proof prover="10"><result status="valid" time="0.04"/></proof>
<proof prover="4"><result status="valid" time="0.03"/></proof>
<proof prover="5"><result status="valid" time="0.04"/></proof>
</goal>
<goal name="WP_parameter merge.55" expl="55. loop invariant preservation">
<proof prover="5"><result status="valid" time="0.09"/></proof>
<proof prover="9"><result status="valid" time="0.10"/></proof>
<proof prover="4"><result status="valid" time="0.10"/></proof>
</goal>
<goal name="WP_parameter merge.56" expl="56. loop variant decrease">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="0.04"/></proof>
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.57" expl="57. postcondition">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter merge.58" expl="58. postcondition">
<proof prover="5" timelimit="10" memlimit="0"><result status="valid" time="2.41"/></proof>
<proof prover="9"><result status="valid" time="1.50"/></proof>
<proof prover="1" timelimit="5"><result status="valid" time="0.07"/></proof>
</goal>
</transf>
</goal>
<goal name="WP_parameter mergesort" expl="VC for mergesort" expanded="true">
<transf name="split_goal_wp" expanded="true">
<goal name="WP_parameter mergesort" expl="VC for mergesort">
<transf name="split_goal_wp">
<goal name="WP_parameter mergesort.1" expl="1. loop invariant init">
<proof prover="9"><result status="valid" time="0.07"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="WP_parameter mergesort.2" expl="2. loop invariant init">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.3" expl="3. precondition">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.4" expl="4. precondition">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.5" expl="5. loop invariant preservation">
<proof prover="1" timelimit="16"><result status="valid" time="4.68"/></proof>
<proof prover="3"><result status="valid" time="0.84"/></proof>
<proof prover="2"><result status="valid" time="3.81"/></proof>
</goal>
<goal name="WP_parameter mergesort.6" expl="6. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.06"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter mergesort.7" expl="7. loop variant decrease">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.8" expl="8. loop invariant preservation">
<proof prover="1" timelimit="6"><result status="valid" time="0.50"/></proof>
<proof prover="2"><result status="valid" time="0.89"/></proof>
<proof prover="4"><result status="valid" time="0.13"/></proof>
<proof prover="6"><result status="valid" time="0.36"/></proof>
<proof prover="7"><result status="valid" time="0.85"/></proof>
<proof prover="8"><result status="valid" time="0.12"/></proof>
<proof prover="1"><result status="valid" time="0.13"/></proof>
<proof prover="3"><result status="valid" time="2.37"/></proof>
</goal>
<goal name="WP_parameter mergesort.9" expl="9. loop invariant preservation">
<proof prover="9"><result status="valid" time="0.06"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.06"/></proof>
</goal>
<goal name="WP_parameter mergesort.10" expl="10. loop variant decrease">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.11" expl="11. assertion">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.12" expl="12. assertion">
<proof prover="9"><result status="valid" time="0.03"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter mergesort.13" expl="13. variant decrease">
<proof prover="9"><result status="valid" time="0.03"/></proof>
<proof prover="10"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.03"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.14" expl="14. variant decrease">
<proof prover="9"><result status="valid" time="0.04"/></proof>
<proof prover="10"><result status="valid" time="0.03"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.04"/></proof>
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter mergesort.15" expl="15. precondition">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.16" expl="16. postcondition">
<proof prover="9"><result status="valid" time="0.42"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.98"/></proof>
</goal>
<goal name="WP_parameter mergesort.17" expl="17. assertion">
<proof prover="4"><result status="valid" time="0.08"/></proof>
<proof prover="9"><result status="unknown" time="0.02"/></proof>
<proof prover="1"><result status="valid" time="0.08"/></proof>
</goal>
<goal name="WP_parameter mergesort.18" expl="18. postcondition">
<transf name="split_goal_wp">
<goal name="WP_parameter mergesort.18.1" expl="1.">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="WP_parameter mergesort.18.2" expl="2.">
<proof prover="9"><result status="valid" time="0.02"/></proof>
<proof prover="4" timelimit="6"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
......
No preview for this file type
......@@ -2,11 +2,11 @@
<!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.95.1" timelimit="20" memlimit="0"/>
<prover id="0" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="1000"/>
<file name="../sorted_list.mlw" expanded="true">
<theory name="FindInSortedList" sum="9315da3cc3b88fe0c4ad3f06aad610f4" expanded="true">
<theory name="FindInSortedList" sum="a6b267074f636ad1d1f4475349be62a0" expanded="true">
<goal name="Sorted_not_mem" expanded="true">
<proof prover="0"><result status="valid" time="0.01"/></proof>
<proof prover="0"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="WP_parameter find" expl="VC for find" expanded="true">
<proof prover="0"><result status="valid" time="0.02"/></proof>
......
No preview for this file type
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
(* Why3 assumption *)
Inductive list (a:Type) :=
| Nil : list a
| Cons : a -> (list a) -> list a.
Axiom list_WhyType : forall (a:Type) {a_WT:WhyType a}, WhyType (list a).
Existing Instance list_WhyType.
Implicit Arguments Nil [[a]].
Implicit Arguments Cons [[a]].
Parameter num_occ: forall {a:Type} {a_WT:WhyType a}, a -> (list a) -> Z.
Axiom num_occ_def : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l:(list
a)),
match l with
| Nil => ((num_occ x l) = 0%Z)
| (Cons y r) => ((x = y) -> ((num_occ x l) = (1%Z + (num_occ x r))%Z)) /\
((~ (x = y)) -> ((num_occ x l) = (0%Z + (num_occ x r))%Z))
end.
(* Why3 assumption *)
Fixpoint mem {a:Type} {a_WT:WhyType a} (x:a) (l:(list a)) {struct l}: Prop :=
match l with
| Nil => False
| (Cons y r) => (x = y) \/ (mem x r)
end.
Axiom Mem_Num_Occ : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l:(list
a)), (mem x l) <-> (0%Z < (num_occ x l))%Z.
(* Why3 assumption *)
Fixpoint infix_plpl {a:Type} {a_WT:WhyType a} (l1:(list a)) (l2:(list
a)) {struct l1}: (list a) :=
match l1 with
| Nil => l2
| (Cons x1 r1) => (Cons x1 (infix_plpl r1 l2))
end.
Axiom Append_assoc : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (l3:(list a)), ((infix_plpl l1 (infix_plpl l2
l3)) = (infix_plpl (infix_plpl l1 l2) l3)).
Axiom Append_l_nil : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
((infix_plpl l (Nil : (list a))) = l).
(* Why3 assumption *)
Fixpoint length {a:Type} {a_WT:WhyType a} (l:(list a)) {struct l}: Z :=
match l with
| Nil => 0%Z
| (Cons _ r) => (1%Z + (length r))%Z
end.
Axiom Length_nonnegative : forall {a:Type} {a_WT:WhyType a}, forall (l:(list
a)), (0%Z <= (length l))%Z.
Axiom Length_nil : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
((length l) = 0%Z) <-> (l = (Nil : (list a))).
Axiom Append_length : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)), ((length (infix_plpl l1
l2)) = ((length l1) + (length l2))%Z).
Axiom mem_append : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l1:(list
a)) (l2:(list a)), (mem x (infix_plpl l1 l2)) <-> ((mem x l1) \/ (mem x
l2)).
Axiom mem_decomp : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l:(list
a)), (mem x l) -> exists l1:(list a), exists l2:(list a),
(l = (infix_plpl l1 (Cons x l2))).
Axiom Append_Num_Occ : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l1:(list a)) (l2:(list a)), ((num_occ x (infix_plpl l1 l2)) = ((num_occ x
l1) + (num_occ x l2))%Z).
(* Why3 assumption *)
Fixpoint reverse {a:Type} {a_WT:WhyType a} (l:(list a)) {struct l}: (list
a) :=
match l with
| Nil => (Nil : (list a))
| (Cons x r) => (infix_plpl (reverse r) (Cons x (Nil : (list a))))
end.
Axiom reverse_append : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (x:a), ((infix_plpl (reverse (Cons x l1))
l2) = (infix_plpl (reverse l1) (Cons x l2))).
Axiom reverse_cons : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a))
(x:a), ((reverse (Cons x l)) = (infix_plpl (reverse l) (Cons x (Nil : (list
a))))).
Axiom cons_reverse : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a))
(x:a), ((Cons x (reverse l)) = (reverse (infix_plpl l (Cons x (Nil : (list
a)))))).
Axiom reverse_reverse : forall {a:Type} {a_WT:WhyType a}, forall (l:(list
a)), ((reverse (reverse l)) = l).
Axiom reverse_mem : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a))
(x:a), (mem x l) <-> (mem x (reverse l)).
Axiom Reverse_length : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
((length (reverse l)) = (length l)).
Axiom reverse_num_occ : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l:(list a)), ((num_occ x l) = (num_occ x (reverse l))).
(* Why3 assumption *)
Definition permut {a:Type} {a_WT:WhyType a} (l1:(list a)) (l2:(list
a)): Prop := forall (x:a), ((num_occ x l1) = (num_occ x l2)).
Axiom Permut_refl : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
(permut l l).
Axiom Permut_sym : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)), (permut l1 l2) -> (permut l2 l1).
Axiom Permut_trans : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (l3:(list a)), (permut l1 l2) -> ((permut l2 l3) -> (permut
l1 l3)).
Axiom Permut_cons : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l1:(list
a)) (l2:(list a)), (permut l1 l2) -> (permut (Cons x l1) (Cons x l2)).
Axiom Permut_swap : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (y:a)
(l:(list a)), (permut (Cons x (Cons y l)) (Cons y (Cons x l))).
Axiom Permut_cons_append : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l1:(list a)) (l2:(list a)), (permut (infix_plpl (Cons x l1) l2)
(infix_plpl l1 (Cons x l2))).
Axiom Permut_assoc : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (l3:(list a)), (permut (infix_plpl (infix_plpl l1 l2) l3)
(infix_plpl l1 (infix_plpl l2 l3))).
Axiom Permut_append : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (k1:(list a)) (k2:(list a)), (permut l1 k1) -> ((permut l2
k2) -> (permut (infix_plpl l1 l2) (infix_plpl k1 k2))).
Axiom Permut_append_swap : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list
a)) (l2:(list a)), (permut (infix_plpl l1 l2) (infix_plpl l2 l1)).
Axiom Permut_mem : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l1:(list
a)) (l2:(list a)), (permut l1 l2) -> ((mem x l1) -> (mem x l2)).
(* Why3 goal *)
Theorem Permut_length : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list
a)) (l2:(list a)), (permut l1 l2) -> ((length l1) = (length l2)).
intros a a_WT l1 l2 h1.
Qed.
(* This file is generated by Why3's Coq driver *)
(* Beware! Only edit allowed sections below *)
Require Import BuiltIn.
Require BuiltIn.
Require int.Int.
(* Why3 assumption *)
Inductive list (a:Type) :=
| Nil : list a
| Cons : a -> (list a) -> list a.
Axiom list_WhyType : forall (a:Type) {a_WT:WhyType a}, WhyType (list a).
Existing Instance list_WhyType.
Implicit Arguments Nil [[a]].
Implicit Arguments Cons [[a]].
Parameter num_occ: forall {a:Type} {a_WT:WhyType a}, a -> (list a) -> Z.
Axiom num_occ_def : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l:(list
a)),
match l with
| Nil => ((num_occ x l) = 0%Z)
| (Cons y r) => ((x = y) -> ((num_occ x l) = (1%Z + (num_occ x r))%Z)) /\
((~ (x = y)) -> ((num_occ x l) = (0%Z + (num_occ x r))%Z))
end.
Axiom Num_Occ_Positive : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l:(list a)), (0%Z <= (num_occ x l))%Z.
(* Why3 assumption *)
Fixpoint mem {a:Type} {a_WT:WhyType a} (x:a) (l:(list a)) {struct l}: Prop :=
match l with
| Nil => False
| (Cons y r) => (x = y) \/ (mem x r)
end.
Axiom Mem_Num_Occ : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l:(list
a)), (mem x l) <-> (0%Z < (num_occ x l))%Z.
(* Why3 assumption *)
Fixpoint infix_plpl {a:Type} {a_WT:WhyType a} (l1:(list a)) (l2:(list
a)) {struct l1}: (list a) :=
match l1 with
| Nil => l2
| (Cons x1 r1) => (Cons x1 (infix_plpl r1 l2))
end.
Axiom Append_assoc : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (l3:(list a)), ((infix_plpl l1 (infix_plpl l2
l3)) = (infix_plpl (infix_plpl l1 l2) l3)).
Axiom Append_l_nil : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
((infix_plpl l (Nil : (list a))) = l).
(* Why3 assumption *)
Fixpoint length {a:Type} {a_WT:WhyType a} (l:(list a)) {struct l}: Z :=
match l with
| Nil => 0%Z
| (Cons _ r) => (1%Z + (length r))%Z
end.
Axiom Length_nonnegative : forall {a:Type} {a_WT:WhyType a}, forall (l:(list
a)), (0%Z <= (length l))%Z.
Axiom Length_nil : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
((length l) = 0%Z) <-> (l = (Nil : (list a))).
Axiom Append_length : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)), ((length (infix_plpl l1
l2)) = ((length l1) + (length l2))%Z).
Axiom mem_append : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l1:(list
a)) (l2:(list a)), (mem x (infix_plpl l1 l2)) <-> ((mem x l1) \/ (mem x
l2)).
Axiom mem_decomp : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l:(list
a)), (mem x l) -> exists l1:(list a), exists l2:(list a),
(l = (infix_plpl l1 (Cons x l2))).
Axiom Append_Num_Occ : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l1:(list a)) (l2:(list a)), ((num_occ x (infix_plpl l1 l2)) = ((num_occ x
l1) + (num_occ x l2))%Z).
(* Why3 assumption *)
Fixpoint reverse {a:Type} {a_WT:WhyType a} (l:(list a)) {struct l}: (list
a) :=
match l with
| Nil => (Nil : (list a))
| (Cons x r) => (infix_plpl (reverse r) (Cons x (Nil : (list a))))
end.
Axiom reverse_append : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (x:a), ((infix_plpl (reverse (Cons x l1))
l2) = (infix_plpl (reverse l1) (Cons x l2))).
Axiom reverse_cons : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a))
(x:a), ((reverse (Cons x l)) = (infix_plpl (reverse l) (Cons x (Nil : (list
a))))).
Axiom cons_reverse : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a))
(x:a), ((Cons x (reverse l)) = (reverse (infix_plpl l (Cons x (Nil : (list
a)))))).
Axiom reverse_reverse : forall {a:Type} {a_WT:WhyType a}, forall (l:(list
a)), ((reverse (reverse l)) = l).
Axiom reverse_mem : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a))
(x:a), (mem x l) <-> (mem x (reverse l)).
Axiom Reverse_length : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
((length (reverse l)) = (length l)).
Axiom reverse_num_occ : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l:(list a)), ((num_occ x l) = (num_occ x (reverse l))).
(* Why3 assumption *)
Definition permut {a:Type} {a_WT:WhyType a} (l1:(list a)) (l2:(list
a)): Prop := forall (x:a), ((num_occ x l1) = (num_occ x l2)).
Axiom Permut_refl : forall {a:Type} {a_WT:WhyType a}, forall (l:(list a)),
(permut l l).
Axiom Permut_sym : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)), (permut l1 l2) -> (permut l2 l1).
Axiom Permut_trans : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (l3:(list a)), (permut l1 l2) -> ((permut l2 l3) -> (permut
l1 l3)).
Axiom Permut_cons : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l1:(list
a)) (l2:(list a)), (permut l1 l2) -> (permut (Cons x l1) (Cons x l2)).
Axiom Permut_swap : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (y:a)
(l:(list a)), (permut (Cons x (Cons y l)) (Cons y (Cons x l))).
Axiom Permut_cons_append : forall {a:Type} {a_WT:WhyType a}, forall (x:a)
(l1:(list a)) (l2:(list a)), (permut (infix_plpl (Cons x l1) l2)
(infix_plpl l1 (Cons x l2))).
Axiom Permut_assoc : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (l3:(list a)), (permut (infix_plpl (infix_plpl l1 l2) l3)
(infix_plpl l1 (infix_plpl l2 l3))).
Axiom Permut_append : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list a))
(l2:(list a)) (k1:(list a)) (k2:(list a)), (permut l1 k1) -> ((permut l2
k2) -> (permut (infix_plpl l1 l2) (infix_plpl k1 k2))).
Axiom Permut_append_swap : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list
a)) (l2:(list a)), (permut (infix_plpl l1 l2) (infix_plpl l2 l1)).
Axiom Permut_mem : forall {a:Type} {a_WT:WhyType a}, forall (x:a) (l1:(list
a)) (l2:(list a)), (permut l1 l2) -> ((mem x l1) -> (mem x l2)).
(* Why3 goal *)
Theorem Permut_length : forall {a:Type} {a_WT:WhyType a}, forall (l1:(list
a)) (l2:(list a)), (permut l1 l2) -> ((length l1) = (length l2)).
intros a a_WT l1 l2 h1.
Require Import Why3.
Ltac cvc := why3 "CVC4,1.4,".
generalize dependent l2.
induction l1; intros.
destruct l2.
trivial.
cvc.
pose (h2 := h1).
clearbody h2.
specialize (h1 a0).
assert (mem a0 l2) by cvc.
apply mem_decomp in H.
destruct H as [l3 [l4 H]].
assert (permut l1 (infix_plpl l3 l4)).
intro.
cvc.
cvc.
Qed.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="4">
<prover id="0" name="CVC3" version="2.4.1" timelimit="5" memlimit="1000"/>
<prover id="1" name="CVC4" version="1.4" timelimit="5" memlimit="1000"/>
<prover id="2" name="Spass" version="3.5" timelimit="5" memlimit="1000"/>
<prover id="3" name="Coq" version="8.4pl2" timelimit="5" memlimit="1000"/>
<prover id="4" name="Eprover" version="1.8-001" timelimit="5" memlimit="1000"/>
<prover id="5" name="Alt-Ergo" version="0.95.2" timelimit="5" memlimit="1000"/>
<prover id="6" name="CVC4" version="1.3" timelimit="5" memlimit="1000"/>
<file name="../../../theories/list.why" expanded="true">
<theory name="List" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Length" sum="05caecc0d3ea8074e1ba80a75530a754">
<goal name="Length_nonnegative">
<transf name="induction_ty_lex">
<goal name="Length_nonnegative.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="Length_nil">
<transf name="split_goal_wp">
<goal name="Length_nil.1" expl="1.">
<proof prover="2"><result status="valid" time="0.03"/></proof>
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Length_nil.2" expl="2.">
<proof prover="5"><result status="valid" time="0.00"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="Mem" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Elements" sum="877e4f63c0bc41f63ef2cad2cb868814">
<goal name="elements_Nil">
<proof prover="2"><result status="valid" time="0.51"/></proof>
<proof prover="4"><result status="valid" time="0.02"/></proof>
</goal>
</theory>
<theory name="Nth" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="NthNoOpt" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="NthLength" sum="9df36b3cf6313d38366bfd7427521f0d">
<goal name="nth_none_1">
<transf name="induction_ty_lex">
<goal name="nth_none_1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
<goal name="nth_none_2">
<transf name="induction_ty_lex">
<goal name="nth_none_2.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="nth_none_3">
<transf name="induction_ty_lex">
<goal name="nth_none_3.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="HdTl" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="HdTlNoOpt" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="NthHdTl" sum="605b4f2f29860acc4d58392b8e6b8e95">
<goal name="Nth_tl">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Nth0_head">
<proof prover="4"><result status="valid" time="0.01"/></proof>
</goal>
</theory>
<theory name="Append" sum="23c9caac5f459c7810a5c31001d09327">
<goal name="Append_assoc">
<transf name="induction_ty_lex">
<goal name="Append_assoc.1" expl="1.">
<transf name="split_goal_wp">
<goal name="Append_assoc.1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Append_assoc.1.2" expl="2.">
<proof prover="5"><result status="valid" time="0.00"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="Append_l_nil">
<transf name="induction_ty_lex">
<goal name="Append_l_nil.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="Append_length">
<transf name="induction_ty_lex">
<goal name="Append_length.1" expl="1.">
<proof prover="5"><result status="valid" time="0.12"/></proof>
</goal>
</transf>
</goal>
<goal name="mem_append">
<transf name="induction_ty_lex">
<goal name="mem_append.1" expl="1.">
<proof prover="5"><result status="valid" time="0.21"/></proof>
</goal>
</transf>
</goal>
<goal name="mem_decomp">
<transf name="induction_ty_lex">
<goal name="mem_decomp.1" expl="1.">
<transf name="split_goal_wp">
<goal name="mem_decomp.1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="mem_decomp.1.2" expl="2.">
<proof prover="2"><result status="valid" time="0.31"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
<theory name="NthLengthAppend" sum="f3c686209d40076fa7f8e64ec02f92be">
<goal name="nth_append_1">
<transf name="induction_ty_lex">
<goal name="nth_append_1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
</transf>
</goal>
<goal name="nth_append_2">
<transf name="induction_ty_lex">
<goal name="nth_append_2.1" expl="1.">
<proof prover="5"><result status="valid" time="0.11"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="Reverse" sum="bc1b8b026b77ef2c52577c6ef9cc53d0">
<goal name="reverse_append">
<transf name="induction_ty_lex">
<goal name="reverse_append.1" expl="1.">
<proof prover="5"><result status="valid" time="0.59"/></proof>
</goal>
</transf>
</goal>
<goal name="reverse_cons">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="cons_reverse">
<transf name="induction_ty_lex">
<goal name="cons_reverse.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="reverse_reverse">
<transf name="induction_ty_lex">
<goal name="reverse_reverse.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="reverse_mem">
<transf name="induction_ty_lex">
<goal name="reverse_mem.1" expl="1.">
<proof prover="5"><result status="valid" time="0.08"/></proof>
</goal>
</transf>
</goal>
<goal name="Reverse_length">
<transf name="induction_ty_lex">
<goal name="Reverse_length.1" expl="1.">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="RevAppend" sum="9da10df4b75652aa79e575c6cf846dc2">
<goal name="rev_append_append_l">
<transf name="induction_ty_lex">
<goal name="rev_append_append_l.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="rev_append_length">
<transf name="induction_ty_lex">
<goal name="rev_append_length.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="rev_append_def">
<transf name="induction_ty_lex">
<goal name="rev_append_def.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="rev_append_append_r">
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
</theory>
<theory name="Combine" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Sorted" sum="aedc51a4d5f32e1722b9b8d9b080a402">
<goal name="sorted_mem">
<transf name="split_goal_wp">
<goal name="sorted_mem.1" expl="1.">
<proof prover="5"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="sorted_mem.2" expl="2.">
<transf name="induction_pr">
<goal name="sorted_mem.2.1" expl="1.">
<proof prover="6"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="sorted_mem.2.2" expl="2.">
<proof prover="6"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="sorted_mem.2.3" expl="3.">
<proof prover="0"><result status="valid" time="0.05"/></proof>
</goal>
</transf>
</goal>
<goal name="sorted_mem.3" expl="3.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="sorted_append">
<transf name="induction_ty_lex">
<goal name="sorted_append.1" expl="1.">
<transf name="split_goal_wp">
<goal name="sorted_append.1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="sorted_append.1.2" expl="2.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="sorted_append.1.3" expl="3.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="sorted_append.1.4" expl="4.">
<proof prover="5"><result status="valid" time="0.00"/></proof>
</goal>
<goal name="sorted_append.1.5" expl="5.">
<proof prover="1"><result status="valid" time="0.18"/></proof>
</goal>
<goal name="sorted_append.1.6" expl="6.">
<proof prover="1"><result status="valid" time="1.88"/></proof>
</goal>
<goal name="sorted_append.1.7" expl="7.">
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="sorted_append.1.8" expl="8.">
<proof prover="0"><result status="valid" time="1.89"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
<theory name="SortedInt" sum="06ce40f504085478e9252d4d73c60488">
<goal name="Transitive.Trans">
<proof prover="5"><result status="valid" time="0.00"/></proof>
</goal>
</theory>
<theory name="RevSorted" sum="19294c1c9d872edacfaf8b426b74d395">
<goal name="Incr.Transitive.Trans">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Decr.Transitive.Trans">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="rev_append_sorted_incr">
<transf name="induction_ty_lex">
<goal name="rev_append_sorted_incr.1" expl="1.">
<transf name="split_goal_wp">
<goal name="rev_append_sorted_incr.1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.2" expl="2.">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.3" expl="3.">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.4" expl="4.">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.5" expl="5.">
<proof prover="1"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.6" expl="6.">
<proof prover="5"><result status="valid" time="0.15"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.7" expl="7.">
<proof prover="4"><result status="valid" time="0.77"/></proof>
</goal>
<goal name="rev_append_sorted_incr.1.8" expl="8.">
<proof prover="4"><result status="valid" time="1.29"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="rev_append_sorted_decr">
<transf name="induction_ty_lex">
<goal name="rev_append_sorted_decr.1" expl="1.">
<transf name="split_goal_wp">
<goal name="rev_append_sorted_decr.1.1" expl="1.">
<proof prover="1"><result status="valid" time="0.00"/></proof>
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.2" expl="2.">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.3" expl="3.">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.4" expl="4.">
<proof prover="1"><result status="valid" time="0.02"/></proof>
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.5" expl="5.">
<proof prover="1"><result status="valid" time="0.05"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.6" expl="6.">
<proof prover="1"><result status="valid" time="0.03"/></proof>
<proof prover="5"><result status="valid" time="0.80"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.7" expl="7.">
<proof prover="1"><result status="valid" time="0.07"/></proof>
</goal>
<goal name="rev_append_sorted_decr.1.8" expl="8.">
<proof prover="1"><result status="valid" time="0.07"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
<theory name="NumOcc" sum="1fa86aeaf6e01c2101b90807733540ed">
<goal name="Num_Occ_Positive">
<transf name="induction_ty_lex">
<goal name="Num_Occ_Positive.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
<goal name="Mem_Num_Occ">
<transf name="induction_ty_lex">
<goal name="Mem_Num_Occ.1" expl="1.">
<transf name="split_goal_wp">
<goal name="Mem_Num_Occ.1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Mem_Num_Occ.1.2" expl="2.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Mem_Num_Occ.1.3" expl="3.">
<proof prover="5"><result status="valid" time="0.03"/></proof>
</goal>
<goal name="Mem_Num_Occ.1.4" expl="4.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
<goal name="Append_Num_Occ">
<transf name="induction_ty_lex">
<goal name="Append_Num_Occ.1" expl="1.">
<proof prover="5"><result status="valid" time="0.11"/></proof>
</goal>
</transf>
</goal>
<goal name="reverse_num_occ">
<transf name="induction_ty_lex">
<goal name="reverse_num_occ.1" expl="1.">
<proof prover="5"><result status="valid" time="1.33"/></proof>
</goal>
</transf>
</goal>
</theory>
<theory name="Permut" sum="1a14fb9d73e92e6b22113b100c71c846">
<goal name="Permut_refl">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Permut_sym">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Permut_trans">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Permut_cons">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Permut_swap">
<proof prover="5"><result status="valid" time="0.36"/></proof>
</goal>
<goal name="Permut_cons_append">
<proof prover="5"><result status="valid" time="0.92"/></proof>
</goal>
<goal name="Permut_assoc">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Permut_append">
<proof prover="5"><result status="valid" time="0.02"/></proof>
</goal>
<goal name="Permut_append_swap">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Permut_mem">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="Permut_length">
<proof prover="3" edited="list_Permut_Permut_length_2.v"><result status="valid" time="2.30"/></proof>
</goal>
</theory>
<theory name="Distinct" sum="e56aed12f61edef3656befad5f86e1ba">
<goal name="distinct_append">
<transf name="induction_ty_lex">
<goal name="distinct_append.1" expl="1.">
<transf name="split_goal_wp">
<goal name="distinct_append.1.1" expl="1.">
<proof prover="5"><result status="valid" time="0.01"/></proof>
</goal>
<goal name="distinct_append.1.2" expl="2.">
<proof prover="1"><result status="valid" time="1.12"/></proof>
</goal>
</transf>
</goal>
</transf>
</goal>
</theory>
<theory name="Prefix" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Sum" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Induction" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="Map" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="FoldLeft" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="FoldRight" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
<theory name="ListRich" sum="d41d8cd98f00b204e9800998ecf8427e">
</theory>
</file>
</why3session>
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment