<?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="Z3" version="4.8.10" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="3" name="Alt-Ergo" version="2.4.1" timelimit="1" 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.09" steps="13531"/></proof>
 </goal>
 <goal name="lt_asym&#39;vc" expl="VC for lt_asym" proved="true">
 <proof prover="0"><result status="valid" time="0.08" steps="11758"/></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.04" steps="14515"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="16529"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="16709"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.3" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="16134"/></proof>
  </goal>
  <goal name="lt_total&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.05" 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.06" steps="15477"/></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.08" steps="23088"/></proof>
 </goal>
 <goal name="is_permutation_of_refl" proved="true">
 <proof prover="0"><result status="valid" time="0.05" steps="11943"/></proof>
 </goal>
 <goal name="is_permutation_of_sym" proved="true">
 <proof prover="0"><result status="valid" time="0.05" steps="12085"/></proof>
 </goal>
 <goal name="is_permutation_of_tran" proved="true">
 <proof prover="0"><result status="valid" time="0.05" steps="12730"/></proof>
 </goal>
 <goal name="occ_id&#39;vc" expl="VC for occ_id" proved="true">
 <proof prover="0"><result status="valid" time="0.20" steps="50953"/></proof>
 </goal>
 <goal name="occ_split&#39;vc" expl="VC for occ_split" proved="true">
 <proof prover="0"><result status="valid" time="1.06" steps="224476"/></proof>
 </goal>
 <goal name="occ_at&#39;vc" expl="VC for occ_at" proved="true">
 <proof prover="0"><result status="valid" time="0.20" steps="49049"/></proof>
 </goal>
 <goal name="occ_none&#39;vc" expl="VC for occ_none" proved="true">
 <proof prover="0"><result status="valid" time="0.28" steps="63547"/></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.07" steps="17570"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="20442"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.2" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="17840"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.3" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="18362"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.4" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.62" steps="126673"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.5" expl="assertion" proved="true">
  <proof prover="2"><result status="valid" time="0.08" steps="99145"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.6" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="23622"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.7" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19753"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="20070"/></proof>
  </goal>
  <goal name="descending_is_last&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="19036"/></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.06" steps="17955"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="21256"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.2" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="18225"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.3" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="18749"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.4" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.88" steps="141304"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.5" expl="assertion" proved="true">
  <proof prover="2"><result status="valid" time="0.08" steps="101926"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.6" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="24547"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.7" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="20175"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="20905"/></proof>
  </goal>
  <goal name="ascending_is_first&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19515"/></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.05" steps="14324"/></proof>
  </goal>
  <goal name="swap&#39;vc.1" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="14324"/></proof>
  </goal>
  <goal name="swap&#39;vc.2" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.03" steps="14324"/></proof>
  </goal>
  <goal name="swap&#39;vc.3" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="15586"/></proof>
  </goal>
  <goal name="swap&#39;vc.4" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="19578"/></proof>
  </goal>
  <goal name="swap&#39;vc.5" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="80"/></proof>
  </goal>
  <goal name="swap&#39;vc.6" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="19639"/></proof>
  </goal>
  <goal name="swap&#39;vc.7" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="19540"/></proof>
  </goal>
  <goal name="swap&#39;vc.8" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="19784"/></proof>
  </goal>
  <goal name="swap&#39;vc.9" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="19998"/></proof>
  </goal>
  <goal name="swap&#39;vc.10" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="20249"/></proof>
  </goal>
  <goal name="swap&#39;vc.11" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="81"/></proof>
  </goal>
  <goal name="swap&#39;vc.12" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="20382"/></proof>
  </goal>
  <goal name="swap&#39;vc.13" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="81"/></proof>
  </goal>
  <goal name="swap&#39;vc.14" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="19530"/></proof>
  </goal>
  <goal name="swap&#39;vc.15" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="76"/></proof>
  </goal>
  <goal name="swap&#39;vc.16" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.09" steps="19590"/></proof>
  </goal>
  <goal name="swap&#39;vc.17" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19491"/></proof>
  </goal>
  <goal name="swap&#39;vc.18" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="19720"/></proof>
  </goal>
  <goal name="swap&#39;vc.19" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19934"/></proof>
  </goal>
  <goal name="swap&#39;vc.20" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="20185"/></proof>
  </goal>
  <goal name="swap&#39;vc.21" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="77"/></proof>
  </goal>
  <goal name="swap&#39;vc.22" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="20335"/></proof>
  </goal>
  <goal name="swap&#39;vc.23" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.03" steps="77"/></proof>
  </goal>
  <goal name="swap&#39;vc.24" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.01" steps="40"/></proof>
  </goal>
  <goal name="swap&#39;vc.25" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.01" steps="44"/></proof>
  </goal>
  <goal name="swap&#39;vc.26" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.01" steps="38"/></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" timelimit="5"><result status="valid" time="0.17" steps="39070"/></proof>
    </goal>
    <goal name="swap&#39;vc.27.0.1" expl="postcondition" proved="true">
    <proof prover="0" timelimit="5"><result status="valid" time="0.18" steps="35930"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="swap&#39;vc.27.1" expl="postcondition" proved="true">
   <proof prover="0" timelimit="5"><result status="valid" time="0.18" steps="35792"/></proof>
   </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.07" steps="20067"/></proof>
  </goal>
  <goal name="next&#39;vc.1" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="29063"/></proof>
  </goal>
  <goal name="next&#39;vc.2" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="18953"/></proof>
  </goal>
  <goal name="next&#39;vc.3" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="18928"/></proof>
  </goal>
  <goal name="next&#39;vc.4" expl="loop variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19357"/></proof>
  </goal>
  <goal name="next&#39;vc.5" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19340"/></proof>
  </goal>
  <goal name="next&#39;vc.6" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.15" steps="40390"/></proof>
  </goal>
  <goal name="next&#39;vc.7" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="18871"/></proof>
  </goal>
  <goal name="next&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="18913"/></proof>
  </goal>
  <goal name="next&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="21534"/></proof>
  </goal>
  <goal name="next&#39;vc.10" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="18936"/></proof>
  </goal>
  <goal name="next&#39;vc.11" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="18963"/></proof>
  </goal>
  <goal name="next&#39;vc.12" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19452"/></proof>
  </goal>
  <goal name="next&#39;vc.13" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="18906"/></proof>
  </goal>
  <goal name="next&#39;vc.14" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="18992"/></proof>
  </goal>
  <goal name="next&#39;vc.15" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19718"/></proof>
  </goal>
  <goal name="next&#39;vc.16" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19725"/></proof>
  </goal>
  <goal name="next&#39;vc.17" expl="loop variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19993"/></proof>
  </goal>
  <goal name="next&#39;vc.18" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="20073"/></proof>
  </goal>
  <goal name="next&#39;vc.19" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="22164"/></proof>
  </goal>
  <goal name="next&#39;vc.20" expl="index in array bounds" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19831"/></proof>
  </goal>
  <goal name="next&#39;vc.21" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19803"/></proof>
  </goal>
  <goal name="next&#39;vc.22" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.03" steps="19900"/></proof>
  </goal>
  <goal name="next&#39;vc.23" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="20150"/></proof>
  </goal>
  <goal name="next&#39;vc.24" expl="assertion" proved="true">
  <proof prover="1"><result status="valid" time="0.37" steps="1242"/></proof>
  </goal>
  <goal name="next&#39;vc.25" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="20203"/></proof>
  </goal>
  <goal name="next&#39;vc.26" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19477"/></proof>
  </goal>
  <goal name="next&#39;vc.27" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="23321"/></proof>
  </goal>
  <goal name="next&#39;vc.28" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="19592"/></proof>
  </goal>
  <goal name="next&#39;vc.29" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19620"/></proof>
  </goal>
  <goal name="next&#39;vc.30" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="19666"/></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.04" steps="19713"/></proof>
   </goal>
   <goal name="next&#39;vc.31.1" expl="loop invariant init" proved="true">
   <proof prover="0"><result status="valid" time="0.05" steps="19713"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.32" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="21152"/></proof>
  </goal>
  <goal name="next&#39;vc.33" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="21207"/></proof>
  </goal>
  <goal name="next&#39;vc.34" expl="loop variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="21677"/></proof>
  </goal>
  <goal name="next&#39;vc.35" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="21795"/></proof>
  </goal>
  <goal name="next&#39;vc.36" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="21841"/></proof>
  </goal>
  <goal name="next&#39;vc.37" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="26719"/></proof>
  </goal>
  <goal name="next&#39;vc.38" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="26486"/></proof>
  </goal>
  <goal name="next&#39;vc.39" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="21979"/></proof>
  </goal>
  <goal name="next&#39;vc.40" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="27267"/></proof>
  </goal>
  <goal name="next&#39;vc.41" expl="loop invariant preservation" proved="true">
  <proof prover="1"><result status="valid" time="0.05" steps="345"/></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.02" steps="84"/></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.02" steps="86"/></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.06" steps="21391"/></proof>
    </goal>
    <goal name="next&#39;vc.43.0.1" expl="VC for next" proved="true">
    <proof prover="0"><result status="valid" time="0.06" steps="21253"/></proof>
    </goal>
    <goal name="next&#39;vc.43.0.2" expl="VC for next" proved="true">
    <proof prover="0"><result status="valid" time="0.07" steps="21397"/></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="1.30" steps="1501"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.44" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.76" steps="132848"/></proof>
  </goal>
  <goal name="next&#39;vc.45" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.22" steps="48887"/></proof>
  </goal>
  <goal name="next&#39;vc.46" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="20827"/></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="1" timelimit="5"><result status="valid" time="0.22" steps="1163"/></proof>
   </goal>
   <goal name="next&#39;vc.47.1" expl="assertion" proved="true">
   <proof prover="0" timelimit="5"><result status="valid" time="0.07" steps="20807"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="next&#39;vc.48" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="22733"/></proof>
  </goal>
  <goal name="next&#39;vc.49" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.13" steps="34284"/></proof>
  </goal>
  <goal name="next&#39;vc.50" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22614"/></proof>
  </goal>
  <goal name="next&#39;vc.51" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22683"/></proof>
  </goal>
  <goal name="next&#39;vc.52" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="22742"/></proof>
  </goal>
  <goal name="next&#39;vc.53" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22867"/></proof>
  </goal>
  <goal name="next&#39;vc.54" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.52" steps="83411"/></proof>
  </goal>
  <goal name="next&#39;vc.55" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5"><result status="valid" time="0.14" steps="338717"/></proof>
  </goal>
  <goal name="next&#39;vc.56" expl="loop invariant preservation" proved="true">
  <proof prover="0" timelimit="5"><result status="valid" time="0.10" steps="26356"/></proof>
  </goal>
  <goal name="next&#39;vc.57" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.09" steps="911"/></proof>
  </goal>
  <goal name="next&#39;vc.58" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="70"/></proof>
  </goal>
  <goal name="next&#39;vc.59" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="20998"/></proof>
  </goal>
  <goal name="next&#39;vc.60" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="27008"/></proof>
  </goal>
  <goal name="next&#39;vc.61" expl="assertion" proved="true">
  <proof prover="1"><result status="valid" time="0.21" steps="1136"/></proof>
  </goal>
  <goal name="next&#39;vc.62" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22847"/></proof>
  </goal>
  <goal name="next&#39;vc.63" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.07" steps="475"/></proof>
  </goal>
  <goal name="next&#39;vc.64" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22772"/></proof>
  </goal>
  <goal name="next&#39;vc.65" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22942"/></proof>
  </goal>
  <goal name="next&#39;vc.66" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="22900"/></proof>
  </goal>
  <goal name="next&#39;vc.67" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="23126"/></proof>
  </goal>
  <goal name="next&#39;vc.68" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="40154"/></proof>
  </goal>
  <goal name="next&#39;vc.69" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.54" steps="87731"/></proof>
  </goal>
  <goal name="next&#39;vc.70" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.10" steps="28122"/></proof>
  </goal>
  <goal name="next&#39;vc.71" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="23226"/></proof>
  </goal>
  <goal name="next&#39;vc.72" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.14" steps="41997"/></proof>
  </goal>
  <goal name="next&#39;vc.73" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="23037"/></proof>
  </goal>
  <goal name="next&#39;vc.74" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.09" steps="26678"/></proof>
  </goal>
  <goal name="next&#39;vc.75" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.17" steps="897"/></proof>
  </goal>
  <goal name="next&#39;vc.76" expl="postcondition" proved="true">
  <proof prover="1"><result status="valid" time="0.02" steps="76"/></proof>
  </goal>
  <goal name="next&#39;vc.77" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22356"/></proof>
  </goal>
  <goal name="next&#39;vc.78" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="22496"/></proof>
  </goal>
  <goal name="next&#39;vc.79" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.05" steps="22820"/></proof>
  </goal>
  <goal name="next&#39;vc.80" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="26912"/></proof>
  </goal>
  <goal name="next&#39;vc.81" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.49" steps="78333"/></proof>
  </goal>
  <goal name="next&#39;vc.82" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="22916"/></proof>
  </goal>
  <goal name="next&#39;vc.83" expl="precondition" proved="true">
  <proof prover="1"><result status="valid" time="0.11" steps="628"/></proof>
  </goal>
  <goal name="next&#39;vc.84" expl="postcondition" proved="true">
  <proof prover="1" timelimit="5"><result status="valid" time="0.02" steps="78"/></proof>
  </goal>
  <goal name="next&#39;vc.85" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="20289"/></proof>
  </goal>
  <goal name="next&#39;vc.86" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="20361"/></proof>
  </goal>
  <goal name="next&#39;vc.87" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="20320"/></proof>
  </goal>
  <goal name="next&#39;vc.88" expl="postcondition" proved="true">
  <proof prover="1" timelimit="5"><result status="valid" time="6.13" steps="8491"/></proof>
  </goal>
  <goal name="next&#39;vc.89" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="21486"/></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.09" steps="25171"/></proof>
    </goal>
    <goal name="all_permutations&#39;vc.0.0.1" expl="postcondition" proved="true">
    <proof prover="0"><result status="valid" time="0.09" steps="26961"/></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.04" steps="22839"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.2" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="23264"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.3" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.12" steps="29560"/></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.53" steps="3061"/></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.80" steps="1208"/></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.20" steps="39833"/></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.11" steps="37932"/></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.10" steps="31103"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.6" expl="VC for all_permutations" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="27354"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.7" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.09" steps="24453"/></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.14" steps="35355"/></proof>
   </goal>
   <goal name="all_permutations&#39;vc.8.1" expl="assertion" proved="true">
   <proof prover="0"><result status="valid" time="0.09" steps="32982"/></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.09" steps="29833"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="all_permutations&#39;vc.9" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.09" steps="28460"/></proof>
  </goal>
  <goal name="all_permutations&#39;vc.10" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.09" steps="26636"/></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.05" steps="32355"/></proof>
  </goal>
  <goal name="permut&#39;vc.1" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="32307"/></proof>
  </goal>
  <goal name="permut&#39;vc.2" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="33068"/></proof>
  </goal>
  <goal name="permut&#39;vc.3" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="33157"/></proof>
  </goal>
  <goal name="permut&#39;vc.4" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="32460"/></proof>
  </goal>
  <goal name="permut&#39;vc.5" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="33357"/></proof>
  </goal>
  <goal name="permut&#39;vc.6" expl="loop invariant init" proved="true">
  <proof prover="1"><result status="valid" time="0.09" steps="561"/></proof>
  </goal>
  <goal name="permut&#39;vc.7" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.13" steps="36723"/></proof>
  </goal>
  <goal name="permut&#39;vc.8" expl="loop invariant init" proved="true">
  <proof prover="0"><result status="valid" time="0.10" steps="37334"/></proof>
  </goal>
  <goal name="permut&#39;vc.9" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.06" steps="34193"/></proof>
  </goal>
  <goal name="permut&#39;vc.10" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="33563"/></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.19" steps="38824"/></proof>
   </goal>
   <goal name="permut&#39;vc.11.1" expl="loop variant decrease" proved="true">
   <proof prover="3"><result status="valid" time="0.17" steps="1404"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="permut&#39;vc.12" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.07" steps="34978"/></proof>
  </goal>
  <goal name="permut&#39;vc.13" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.04" steps="34253"/></proof>
  </goal>
  <goal name="permut&#39;vc.14" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="1.26" steps="179859"/></proof>
  </goal>
  <goal name="permut&#39;vc.15" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.08" steps="35176"/></proof>
  </goal>
  <goal name="permut&#39;vc.16" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.15" steps="35133"/></proof>
  </goal>
  <goal name="permut&#39;vc.17" expl="loop invariant preservation" proved="true">
  <proof prover="1"><result status="valid" time="0.33" 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.38" steps="89068"/></proof>
  </goal>
  <goal name="permut&#39;vc.19" expl="loop invariant preservation" proved="true">
  <proof prover="1" timelimit="5"><result status="valid" time="1.52" steps="7703"/></proof>
  </goal>
  <goal name="permut&#39;vc.20" expl="loop invariant preservation" proved="true">
  <proof prover="0"><result status="valid" time="0.12" steps="44227"/></proof>
  </goal>
  <goal name="permut&#39;vc.21" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.19" steps="37488"/></proof>
  </goal>
  <goal name="permut&#39;vc.22" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.11" steps="42109"/></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.06" steps="34126"/></proof>
     </goal>
     <goal name="permut&#39;vc.23.0.0.1" proved="true">
     <proof prover="0"><result status="valid" time="0.07" steps="34128"/></proof>
     </goal>
     <goal name="permut&#39;vc.23.0.0.2" proved="true">
     <proof prover="1" timelimit="10" memlimit="4000"><result status="valid" time="9.59" steps="28797"/></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.36" steps="52741"/></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.13" steps="41843"/></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.20" steps="38084"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
