<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
"http://why3.lri.fr/why3session.dtd">
<why3session shape_version="6">
<prover id="0" name="CVC4" version="1.8" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="1" name="Alt-Ergo" version="2.3.3" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="2.4.2" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="3" name="Alt-Ergo" version="2.4.1" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="4" name="Z3" version="4.11.2" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="5" name="Alt-Ergo" version="2.4.3" timelimit="5" steplimit="0" memlimit="1000"/>
<file format="whyml" proved="true">
<path name=".."/><path name="verifythis_2021_lexicographic_permutations_1.mlw"/>
<theory name="Top" proved="true">
 <goal name="lt_trans&#39;vc" expl="VC for lt_trans" proved="true">
 <proof prover="0"><result status="valid" time="0.090000" steps="13097"/></proof>
 </goal>
 <goal name="lt_asym&#39;vc" expl="VC for lt_asym" proved="true">
 <proof prover="0"><result status="valid" time="0.080000" steps="11654"/></proof>
 </goal>
 <goal name="lt_total&#39;vc" expl="VC for lt_total" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="lt_total&#39;vc.0" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="14573"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="16439"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="16590"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.3" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="16033"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.050000" steps="349"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.5" expl="VC for lt_total" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="14940"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="to_seq&#39;vc" expl="VC for to_seq" proved="true">
 <proof prover="0"><result status="valid" time="0.080000" steps="22541"/></proof>
 </goal>
 <goal name="is_permutation_of_refl" proved="true">
 <proof prover="0"><result status="valid" time="0.050000" steps="11764"/></proof>
 </goal>
 <goal name="is_permutation_of_sym" proved="true">
 <proof prover="0"><result status="valid" time="0.050000" steps="11906"/></proof>
 </goal>
 <goal name="is_permutation_of_tran" proved="true">
 <proof prover="0"><result status="valid" time="0.050000" steps="12551"/></proof>
 </goal>
 <goal name="occ_id&#39;vc" expl="VC for occ_id" proved="true">
 <proof prover="0"><result status="valid" time="0.200000" steps="50212"/></proof>
 </goal>
 <goal name="occ_split&#39;vc" expl="VC for occ_split" proved="true">
 <proof prover="0"><result status="valid" time="0.720000" steps="160665"/></proof>
 </goal>
 <goal name="occ_at&#39;vc" expl="VC for occ_at" proved="true">
 <proof prover="0"><result status="valid" time="0.200000" steps="48334"/></proof>
 </goal>
 <goal name="occ_none&#39;vc" expl="VC for occ_none" proved="true">
 <proof prover="0"><result status="valid" time="0.280000" steps="62806"/></proof>
 </goal>
 <goal name="descending_is_last&#39;vc" expl="VC for descending_is_last" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="descending_is_last&#39;vc.0" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="17565"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20273"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.2" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="17776"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.3" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18174"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.4" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.620000" steps="124031"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.5" expl="assertion" proved="true">
  <proof prover="4"><result status="valid" time="0.020000" steps="79620"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.6" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="23421"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.7" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19582"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="19941"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="18425"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="ascending_is_first&#39;vc" expl="VC for ascending_is_first" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="ascending_is_first&#39;vc.0" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="17950"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21087"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.2" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18161"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.3" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18561"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.4" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.886999" steps="140166"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.5" expl="assertion" proved="true">
  <proof prover="4"><result status="valid" time="0.020000" steps="81334"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.6" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="24346"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.7" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="20004"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20771"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18904"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="swap&#39;vc" expl="VC for swap" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="swap&#39;vc.0" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="13934"/></proof>
  </goal>
  <goal name="swap&#39;vc.1" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="13934"/></proof>
  </goal>
  <goal name="swap&#39;vc.2" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.030000" steps="13934"/></proof>
  </goal>
  <goal name="swap&#39;vc.3" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="15351"/></proof>
  </goal>
  <goal name="swap&#39;vc.4" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="19149"/></proof>
  </goal>
  <goal name="swap&#39;vc.5" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.030000" steps="76"/></proof>
  </goal>
  <goal name="swap&#39;vc.6" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="19210"/></proof>
  </goal>
  <goal name="swap&#39;vc.7" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="19321"/></proof>
  </goal>
  <goal name="swap&#39;vc.8" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="19564"/></proof>
  </goal>
  <goal name="swap&#39;vc.9" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="19778"/></proof>
  </goal>
  <goal name="swap&#39;vc.10" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="20029"/></proof>
  </goal>
  <goal name="swap&#39;vc.11" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.020000" steps="77"/></proof>
  </goal>
  <goal name="swap&#39;vc.12" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="20162"/></proof>
  </goal>
  <goal name="swap&#39;vc.13" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.020000" steps="77"/></proof>
  </goal>
  <goal name="swap&#39;vc.14" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="19130"/></proof>
  </goal>
  <goal name="swap&#39;vc.15" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.020000" steps="74"/></proof>
  </goal>
  <goal name="swap&#39;vc.16" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.090000" steps="19190"/></proof>
  </goal>
  <goal name="swap&#39;vc.17" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19301"/></proof>
  </goal>
  <goal name="swap&#39;vc.18" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="19529"/></proof>
  </goal>
  <goal name="swap&#39;vc.19" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19743"/></proof>
  </goal>
  <goal name="swap&#39;vc.20" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19994"/></proof>
  </goal>
  <goal name="swap&#39;vc.21" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.020000" steps="75"/></proof>
  </goal>
  <goal name="swap&#39;vc.22" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20144"/></proof>
  </goal>
  <goal name="swap&#39;vc.23" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.020000" steps="75"/></proof>
  </goal>
  <goal name="swap&#39;vc.24" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.010000" steps="87"/></proof>
  </goal>
  <goal name="swap&#39;vc.25" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.010000" steps="36"/></proof>
  </goal>
  <goal name="swap&#39;vc.26" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.010000" steps="36"/></proof>
  </goal>
  <goal name="swap&#39;vc.27" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="swap&#39;vc.27.0" expl="postcondition" proved="true">
   <transf name="split_vc" proved="true" >
    <goal name="swap&#39;vc.27.0.0" expl="postcondition" proved="true">
    <proof prover="0"><result status="valid" time="0.220707" steps="38303"/></proof>
    </goal>
    <goal name="swap&#39;vc.27.0.1" expl="postcondition" proved="true">
    <proof prover="0"><result status="valid" time="0.201698" steps="34204"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="swap&#39;vc.27.1" expl="postcondition" proved="true">
   <transf name="split_vc" proved="true" >
    <goal name="swap&#39;vc.27.1.0" expl="postcondition" proved="true">
    <proof prover="0"><result status="valid" time="0.210000" steps="34586"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="next&#39;vc" expl="VC for next" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="next&#39;vc.0" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="19078"/></proof>
  </goal>
  <goal name="next&#39;vc.1" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="27545"/></proof>
  </goal>
  <goal name="next&#39;vc.2" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="17956"/></proof>
  </goal>
  <goal name="next&#39;vc.3" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="17934"/></proof>
  </goal>
  <goal name="next&#39;vc.4" expl="loop variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18278"/></proof>
  </goal>
  <goal name="next&#39;vc.5" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18260"/></proof>
  </goal>
  <goal name="next&#39;vc.6" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.150000" steps="37977"/></proof>
  </goal>
  <goal name="next&#39;vc.7" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="17904"/></proof>
  </goal>
  <goal name="next&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="17946"/></proof>
  </goal>
  <goal name="next&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20397"/></proof>
  </goal>
  <goal name="next&#39;vc.10" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="17969"/></proof>
  </goal>
  <goal name="next&#39;vc.11" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="17996"/></proof>
  </goal>
  <goal name="next&#39;vc.12" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18318"/></proof>
  </goal>
  <goal name="next&#39;vc.13" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="17938"/></proof>
  </goal>
  <goal name="next&#39;vc.14" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18024"/></proof>
  </goal>
  <goal name="next&#39;vc.15" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18587"/></proof>
  </goal>
  <goal name="next&#39;vc.16" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18580"/></proof>
  </goal>
  <goal name="next&#39;vc.17" expl="loop variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18815"/></proof>
  </goal>
  <goal name="next&#39;vc.18" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18890"/></proof>
  </goal>
  <goal name="next&#39;vc.19" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20965"/></proof>
  </goal>
  <goal name="next&#39;vc.20" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18659"/></proof>
  </goal>
  <goal name="next&#39;vc.21" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18645"/></proof>
  </goal>
  <goal name="next&#39;vc.22" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.030000" steps="18726"/></proof>
  </goal>
  <goal name="next&#39;vc.23" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="18966"/></proof>
  </goal>
  <goal name="next&#39;vc.24" expl="assertion" proved="true">
  <proof prover="1"><result status="valid" time="0.948463" steps="2820"/></proof>
  </goal>
  <goal name="next&#39;vc.25" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19047"/></proof>
  </goal>
  <goal name="next&#39;vc.26" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18481"/></proof>
  </goal>
  <goal name="next&#39;vc.27" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="22115"/></proof>
  </goal>
  <goal name="next&#39;vc.28" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="18596"/></proof>
  </goal>
  <goal name="next&#39;vc.29" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18624"/></proof>
  </goal>
  <goal name="next&#39;vc.30" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="18670"/></proof>
  </goal>
  <goal name="next&#39;vc.31" expl="loop invariant init" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="next&#39;vc.31.0" expl="loop invariant init" proved="true">
   <proof prover="0"><result status="valid" time="0.040000" steps="18717"/></proof>
   </goal>
   <goal name="next&#39;vc.31.1" expl="loop invariant init" proved="true">
   <proof prover="0"><result status="valid" time="0.050000" steps="18717"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.32" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19936"/></proof>
  </goal>
  <goal name="next&#39;vc.33" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="19987"/></proof>
  </goal>
  <goal name="next&#39;vc.34" expl="loop variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="20485"/></proof>
  </goal>
  <goal name="next&#39;vc.35" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="20589"/></proof>
  </goal>
  <goal name="next&#39;vc.36" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="20615"/></proof>
  </goal>
  <goal name="next&#39;vc.37" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="25473"/></proof>
  </goal>
  <goal name="next&#39;vc.38" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="25246"/></proof>
  </goal>
  <goal name="next&#39;vc.39" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20781"/></proof>
  </goal>
  <goal name="next&#39;vc.40" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="26017"/></proof>
  </goal>
  <goal name="next&#39;vc.41" expl="loop invariant preservation" proved="true">
  <proof prover="1"><result status="valid" time="0.050000" steps="321"/></proof>
  </goal>
  <goal name="next&#39;vc.42" expl="assertion" proved="true">
  <transf name="case" proved="true" arg1="(k &lt; i)">
   <goal name="next&#39;vc.42.0" expl="true case (assertion)" proved="true">
   <proof prover="1"><result status="valid" time="0.020000" steps="67"/></proof>
   </goal>
   <goal name="next&#39;vc.42.1" expl="false case (assertion)" proved="true">
   <transf name="instantiate" proved="true" arg1="LoopInvariant" arg2="(n - k)">
    <goal name="next&#39;vc.42.1.0" expl="false case (assertion)" proved="true">
    <proof prover="1"><result status="valid" time="0.020000" steps="69"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.43" expl="assertion" proved="true">
  <transf name="unfold" proved="true" arg1="ascending">
   <goal name="next&#39;vc.43.0" expl="VC for next" proved="true">
   <transf name="split_vc" proved="true" >
    <goal name="next&#39;vc.43.0.0" expl="VC for next" proved="true">
    <proof prover="0"><result status="valid" time="0.060000" steps="20194"/></proof>
    </goal>
    <goal name="next&#39;vc.43.0.1" expl="VC for next" proved="true">
    <proof prover="0"><result status="valid" time="0.060000" steps="20065"/></proof>
    </goal>
    <goal name="next&#39;vc.43.0.2" expl="VC for next" proved="true">
    <proof prover="0"><result status="valid" time="0.070000" steps="20181"/></proof>
    </goal>
    <goal name="next&#39;vc.43.0.3" expl="VC for next" proved="true">
    <proof prover="1" timelimit="5"><result status="valid" time="0.976525" steps="1387"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.44" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.749254" steps="129816"/></proof>
  </goal>
  <goal name="next&#39;vc.45" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.220000" steps="47605"/></proof>
  </goal>
  <goal name="next&#39;vc.46" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="20249"/></proof>
  </goal>
  <goal name="next&#39;vc.47" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="next&#39;vc.47.0" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.271682" steps="1451"/></proof>
   </goal>
   <goal name="next&#39;vc.47.1" expl="assertion" proved="true">
   <proof prover="1" timelimit="5"><result status="valid" time="0.010000" steps="10"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.48" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="21924"/></proof>
  </goal>
  <goal name="next&#39;vc.49" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.130000" steps="33380"/></proof>
  </goal>
  <goal name="next&#39;vc.50" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21805"/></proof>
  </goal>
  <goal name="next&#39;vc.51" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21874"/></proof>
  </goal>
  <goal name="next&#39;vc.52" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="21933"/></proof>
  </goal>
  <goal name="next&#39;vc.53" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="22058"/></proof>
  </goal>
  <goal name="next&#39;vc.54" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.520000" steps="81773"/></proof>
  </goal>
  <goal name="next&#39;vc.55" expl="postcondition" proved="true">
  <proof prover="1" timelimit="5"><result status="valid" time="1.542385" steps="3755"/></proof>
  </goal>
  <goal name="next&#39;vc.56" expl="loop invariant preservation" proved="true">
  <proof prover="0" timelimit="5"><result status="valid" time="0.100000" steps="25548"/></proof>
  </goal>
  <goal name="next&#39;vc.57" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.270000" steps="962"/></proof>
  </goal>
  <goal name="next&#39;vc.58" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.030000" steps="62"/></proof>
  </goal>
  <goal name="next&#39;vc.59" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="20392"/></proof>
  </goal>
  <goal name="next&#39;vc.60" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="26133"/></proof>
  </goal>
  <goal name="next&#39;vc.61" expl="assertion" proved="true">
  <proof prover="1"><result status="valid" time="0.350000" steps="1118"/></proof>
  </goal>
  <goal name="next&#39;vc.62" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21970"/></proof>
  </goal>
  <goal name="next&#39;vc.63" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.070000" steps="452"/></proof>
  </goal>
  <goal name="next&#39;vc.64" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21915"/></proof>
  </goal>
  <goal name="next&#39;vc.65" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="22073"/></proof>
  </goal>
  <goal name="next&#39;vc.66" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="22043"/></proof>
  </goal>
  <goal name="next&#39;vc.67" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="22257"/></proof>
  </goal>
  <goal name="next&#39;vc.68" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.190000" steps="39197"/></proof>
  </goal>
  <goal name="next&#39;vc.69" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.540000" steps="79969"/></proof>
  </goal>
  <goal name="next&#39;vc.70" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.100000" steps="27263"/></proof>
  </goal>
  <goal name="next&#39;vc.71" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="22368"/></proof>
  </goal>
  <goal name="next&#39;vc.72" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.140000" steps="40729"/></proof>
  </goal>
  <goal name="next&#39;vc.73" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="22229"/></proof>
  </goal>
  <goal name="next&#39;vc.74" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.090000" steps="25814"/></proof>
  </goal>
  <goal name="next&#39;vc.75" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.260000" steps="876"/></proof>
  </goal>
  <goal name="next&#39;vc.76" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.030000" steps="66"/></proof>
  </goal>
  <goal name="next&#39;vc.77" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21507"/></proof>
  </goal>
  <goal name="next&#39;vc.78" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="21647"/></proof>
  </goal>
  <goal name="next&#39;vc.79" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="21971"/></proof>
  </goal>
  <goal name="next&#39;vc.80" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="26068"/></proof>
  </goal>
  <goal name="next&#39;vc.81" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.490000" steps="76776"/></proof>
  </goal>
  <goal name="next&#39;vc.82" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="22062"/></proof>
  </goal>
  <goal name="next&#39;vc.83" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.093693" steps="608"/></proof>
  </goal>
  <goal name="next&#39;vc.84" expl="postcondition" proved="true">
  <proof prover="4" timelimit="5"><result status="valid" time="0.030000" steps="11852"/></proof>
  </goal>
  <goal name="next&#39;vc.85" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="19263"/></proof>
  </goal>
  <goal name="next&#39;vc.86" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="19335"/></proof>
  </goal>
  <goal name="next&#39;vc.87" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="19294"/></proof>
  </goal>
  <goal name="next&#39;vc.88" expl="postcondition" proved="true">
  <proof prover="1" timelimit="5"><result status="valid" time="7.169709" steps="7509"/></proof>
  </goal>
  <goal name="next&#39;vc.89" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.060000" steps="20266"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="all_permutations&#39;vc" expl="VC for all_permutations" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="all_permutations&#39;vc.0" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="all_permutations&#39;vc.0.0" expl="postcondition" proved="true">
   <transf name="assert" proved="true" arg1="(p ==&#39; empty1)">
    <goal name="all_permutations&#39;vc.0.0.0" expl="asserted formula" proved="true">
    <proof prover="0"><result status="valid" time="0.090000" steps="25078"/></proof>
    </goal>
    <goal name="all_permutations&#39;vc.0.0.1" expl="postcondition" proved="true">
    <proof prover="0"><result status="valid" time="0.090000" steps="28617"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="all_permutations&#39;vc.1" expl="variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="22332"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.2" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="22622"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.3" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.120000" steps="29175"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.4" expl="loop invariant preservation" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="all_permutations&#39;vc.4.0" expl="loop invariant preservation" proved="true">
   <transf name="case" proved="true" arg1="(p[0] = s[j])">
    <goal name="all_permutations&#39;vc.4.0.0" expl="true case (loop invariant preservation)" proved="true">
    <transf name="assert" proved="true" arg1="(mem p[1..] now)">
     <goal name="all_permutations&#39;vc.4.0.0.0" expl="asserted formula" proved="true">
     <proof prover="3"><result status="valid" time="0.521325" steps="3068"/></proof>
     </goal>
     <goal name="all_permutations&#39;vc.4.0.0.1" expl="true case (loop invariant preservation)" proved="true">
     <transf name="assert" proved="true" arg1="(p ==&#39; cons s[j] p[1..])">
      <goal name="all_permutations&#39;vc.4.0.0.1.0" expl="asserted formula" proved="true">
      <proof prover="1"><result status="valid" time="0.798736" steps="1203"/></proof>
      </goal>
      <goal name="all_permutations&#39;vc.4.0.0.1.1" expl="true case (loop invariant preservation)" proved="true">
      <proof prover="0"><result status="valid" time="0.200000" steps="39486"/></proof>
      </goal>
     </transf>
     </goal>
    </transf>
    </goal>
    <goal name="all_permutations&#39;vc.4.0.1" expl="false case (loop invariant preservation)" proved="true">
    <proof prover="0"><result status="valid" time="0.110000" steps="37340"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="all_permutations&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.100000" steps="30673"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.6" expl="VC for all_permutations" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="26958"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.7" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.090000" steps="23829"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.8" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="all_permutations&#39;vc.8.0" expl="assertion" proved="true">
   <proof prover="0"><result status="valid" time="0.140000" steps="35144"/></proof>
   </goal>
   <goal name="all_permutations&#39;vc.8.1" expl="assertion" proved="true">
   <proof prover="0"><result status="valid" time="0.090000" steps="32830"/></proof>
   </goal>
   <goal name="all_permutations&#39;vc.8.2" expl="VC for all_permutations" proved="true">
   <proof prover="0"><result status="valid" time="0.090000" steps="29671"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="all_permutations&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.090000" steps="28331"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.10" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.090000" steps="26496"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="permut&#39;vc" expl="VC for permut" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="permut&#39;vc.0" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.050000" steps="32082"/></proof>
  </goal>
  <goal name="permut&#39;vc.1" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="32034"/></proof>
  </goal>
  <goal name="permut&#39;vc.2" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="32604"/></proof>
  </goal>
  <goal name="permut&#39;vc.3" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="32707"/></proof>
  </goal>
  <goal name="permut&#39;vc.4" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="32187"/></proof>
  </goal>
  <goal name="permut&#39;vc.5" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="32893"/></proof>
  </goal>
  <goal name="permut&#39;vc.6" expl="loop invariant init" proved="true">
  <proof prover="1"><result status="valid" time="0.090000" steps="561"/></proof>
  </goal>
  <goal name="permut&#39;vc.7" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.130000" steps="36278"/></proof>
  </goal>
  <goal name="permut&#39;vc.8" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.100000" steps="36823"/></proof>
  </goal>
  <goal name="permut&#39;vc.9" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.170000" steps="33743"/></proof>
  </goal>
  <goal name="permut&#39;vc.10" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="33290"/></proof>
  </goal>
  <goal name="permut&#39;vc.11" expl="loop variant decrease" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="permut&#39;vc.11.0" expl="loop variant decrease" proved="true">
   <proof prover="0"><result status="valid" time="0.190000" steps="38387"/></proof>
   </goal>
   <goal name="permut&#39;vc.11.1" expl="loop variant decrease" proved="true">
   <proof prover="3"><result status="valid" time="0.170000" steps="1405"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="permut&#39;vc.12" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.070000" steps="34514"/></proof>
  </goal>
  <goal name="permut&#39;vc.13" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="33980"/></proof>
  </goal>
  <goal name="permut&#39;vc.14" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="1.227756" steps="178189"/></proof>
  </goal>
  <goal name="permut&#39;vc.15" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="34716"/></proof>
  </goal>
  <goal name="permut&#39;vc.16" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.150000" steps="34681"/></proof>
  </goal>
  <goal name="permut&#39;vc.17" expl="loop invariant preservation" proved="true">
  <proof prover="1"><result status="valid" time="0.330000" steps="1862"/></proof>
  </goal>
  <goal name="permut&#39;vc.18" expl="loop invariant preservation" proved="true">
  <proof prover="0" timelimit="5"><result status="valid" time="0.540000" steps="88375"/></proof>
  </goal>
  <goal name="permut&#39;vc.19" expl="loop invariant preservation" proved="true">
  <proof prover="1" timelimit="5"><result status="valid" time="1.582441" steps="7703"/></proof>
  </goal>
  <goal name="permut&#39;vc.20" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.260000" steps="43836"/></proof>
  </goal>
  <goal name="permut&#39;vc.21" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.190000" steps="37051"/></proof>
  </goal>
  <goal name="permut&#39;vc.22" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.230000" steps="41679"/></proof>
  </goal>
  <goal name="permut&#39;vc.23" expl="postcondition" proved="true">
  <transf name="case" proved="true" arg1="(p = to_seq a)">
   <goal name="permut&#39;vc.23.0" expl="true case (postcondition)" proved="true">
   <transf name="exists" proved="true" arg1="(length result - 1)">
    <goal name="permut&#39;vc.23.0.0" proved="true">
    <transf name="split_vc" proved="true" >
     <goal name="permut&#39;vc.23.0.0.0" proved="true">
     <proof prover="0"><result status="valid" time="0.060000" steps="33853"/></proof>
     </goal>
     <goal name="permut&#39;vc.23.0.0.1" proved="true">
     <proof prover="0"><result status="valid" time="0.070000" steps="33855"/></proof>
     </goal>
     <goal name="permut&#39;vc.23.0.0.2" proved="true">
     <proof prover="5"><result status="valid" time="5.311422" steps="32781"/></proof>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
   <goal name="permut&#39;vc.23.1" expl="false case (postcondition)" proved="true">
   <transf name="case" proved="true" arg1="(lt p (to_seq a))">
    <goal name="permut&#39;vc.23.1.0" expl="false case (true case. postcondition)" proved="true">
    <transf name="assert" proved="true" arg1="(to_seq a1 ==&#39; to_seq a)">
     <goal name="permut&#39;vc.23.1.0.0" expl="asserted formula" proved="true">
     <proof prover="0"><result status="valid" time="0.212125" steps="52230"/></proof>
     </goal>
     <goal name="permut&#39;vc.23.1.0.1" expl="false case (true case. postcondition)" proved="true">
     <proof prover="0"><result status="valid" time="0.130000" steps="41644"/></proof>
     </goal>
    </transf>
    </goal>
    <goal name="permut&#39;vc.23.1.1" expl="false case (postcondition)" proved="true">
    <proof prover="0"><result status="valid" time="0.200000" steps="37646"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
