<?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="Z3" version="4.11.2" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="2" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="5" name="Eprover" version="2.0" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="6" name="Alt-Ergo" version="2.2.0" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="7" name="CVC4" version="1.6" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="9" name="CVC5" version="1.0.0" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="10" name="Alt-Ergo" version="2.4.2" timelimit="5" steplimit="0" memlimit="2000"/>
<file format="whyml" proved="true">
<path name=".."/><path name="ringdecision.mlw"/>
<theory name="UnitaryCommutativeRingDecision" proved="true">
 <goal name="mon_append&#39;vc" expl="VC for mon_append" proved="true">
 <proof prover="6" timelimit="15"><result status="valid" time="0.02" steps="115"/></proof>
 </goal>
 <goal name="interp_nil" proved="true">
 <proof prover="10" timelimit="15"><result status="valid" time="0.00" steps="12"/></proof>
 </goal>
 <goal name="interp_cons" proved="true">
 <transf name="compute_in_goal" proved="true" >
  <goal name="interp_cons.0" proved="true">
  <proof prover="10"><result status="valid" time="0.02" steps="1076"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="interp_sum&#39;vc" expl="VC for interp_sum" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="interp_sum&#39;vc.0" expl="variant decrease" proved="true">
  <transf name="compute_in_goal" proved="true" >
   <goal name="interp_sum&#39;vc.0.0" expl="variant decrease" proved="true">
   <proof prover="10"><result status="valid" time="0.05" steps="36"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="interp_sum&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="10"><result status="valid" time="0.18" steps="4398"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="append_mon&#39;vc" expl="VC for append_mon" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="append_mon&#39;vc.0" expl="postcondition" proved="true">
  <transf name="compute_in_goal" proved="true" >
   <goal name="append_mon&#39;vc.0.0" expl="postcondition" proved="true">
   <proof prover="6"><result status="valid" time="4.75" steps="46"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="mul_mon&#39;vc" expl="VC for mul_mon" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="mul_mon&#39;vc.0" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="mul_mon&#39;vc.0.0" expl="postcondition" proved="true">
   <proof prover="5" timelimit="1" memlimit="1000"><result status="valid" time="0.16"/></proof>
   </goal>
   <goal name="mul_mon&#39;vc.0.1" expl="postcondition" proved="true">
   <proof prover="9"><result status="valid" time="0.05" steps="6191"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="mul_devel&#39;vc" expl="VC for mul_devel" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="mul_devel&#39;vc.0" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="mul_devel&#39;vc.0.0" expl="postcondition" proved="true">
   <proof prover="5" timelimit="1" memlimit="1000"><result status="valid" time="0.06"/></proof>
   </goal>
   <goal name="mul_devel&#39;vc.0.1" expl="postcondition" proved="true">
   <proof prover="10" timelimit="1" memlimit="1000"><result status="valid" time="0.12" steps="3087"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="conv&#39;vc" expl="VC for conv" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="conv&#39;vc.0" expl="postcondition" proved="true">
  <transf name="simplify_trivial_quantification" proved="true" >
   <goal name="conv&#39;vc.0.0" expl="postcondition" proved="true">
   <transf name="compute_in_goal" proved="true" >
    <goal name="conv&#39;vc.0.0.0" expl="postcondition" proved="true">
    <proof prover="9"><result status="valid" time="0.09" steps="17190"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="insert&#39;vc" expl="VC for insert" proved="true">
 <proof prover="10" timelimit="15"><result status="valid" time="0.02" steps="1736"/></proof>
 </goal>
 <goal name="insertion_sort&#39;vc" expl="VC for insertion_sort" proved="true">
 <proof prover="10" timelimit="15"><result status="valid" time="0.02" steps="251"/></proof>
 </goal>
 <goal name="sort_mon&#39;vc" expl="VC for sort_mon" proved="true">
 <proof prover="10" timelimit="1" memlimit="1000"><result status="valid" time="0.22" steps="4417"/></proof>
 </goal>
 <goal name="sort_mons&#39;vc" expl="VC for sort_mons" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="sort_mons&#39;vc.0" expl="variant decrease" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="sort_mons&#39;vc.0.0" expl="VC for sort_mons" proved="true">
   <transf name="compute_in_goal" proved="true" >
    <goal name="sort_mons&#39;vc.0.0.0" expl="VC for sort_mons" proved="true">
    <proof prover="5"><result status="valid" time="0.01"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="sort_mons&#39;vc.0.1" expl="VC for sort_mons" proved="true">
   <proof prover="6"><result status="valid" time="0.04" steps="18"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="sort_mons&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="6"><result status="valid" time="0.02" steps="143"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="same&#39;vc" expl="VC for same" proved="true">
 <proof prover="10" timelimit="15"><result status="valid" time="0.02" steps="448"/></proof>
 </goal>
 <goal name="squash_sum" proved="true">
 <transf name="compute_in_goal" proved="true" >
  <goal name="squash_sum.0" proved="true">
  <proof prover="7"><result status="valid" time="0.19" steps="17753"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="squash_append&#39;vc" expl="VC for squash_append" proved="true">
 <proof prover="10" timelimit="15"><result status="valid" time="0.18" steps="5905"/></proof>
 </goal>
 <goal name="insert_mon&#39;vc" expl="VC for insert_mon" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="insert_mon&#39;vc.0" expl="assertion" proved="true">
  <transf name="simplify_trivial_quantification" proved="true" >
   <goal name="insert_mon&#39;vc.0.0" expl="assertion" proved="true">
   <proof prover="9"><result status="valid" time="0.15" steps="24071"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="insert_mon&#39;vc.1" expl="variant decrease" proved="true">
  <proof prover="0"><result status="valid" time="0.01" steps="51497"/></proof>
  </goal>
  <goal name="insert_mon&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="9"><result status="valid" time="0.28" steps="41549"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="insertion_sort_mon&#39;vc" expl="VC for insertion_sort_mon" proved="true">
 <proof prover="6" timelimit="15"><result status="valid" time="0.02" steps="192"/></proof>
 </goal>
 <goal name="normalize&#39;vc" expl="VC for normalize" proved="true">
 <proof prover="10" timelimit="15"><result status="valid" time="0.02" steps="63"/></proof>
 </goal>
 <goal name="norm&#39;" proved="true">
 <proof prover="0"><result status="valid" time="0.01" steps="50342"/></proof>
 </goal>
 <goal name="norm" proved="true">
 <proof prover="6" timelimit="15"><result status="valid" time="0.02" steps="64"/></proof>
 </goal>
</theory>
<theory name="Tests" proved="true">
 <goal name="morph_zero" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="morph_one" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="morph_add" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="morph_mul" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="morph_inv" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="eq0&#39;refn&#39;vc" expl="VC for eq0&#39;refn" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="g" proved="true">
 <transf name="introduce_premises" proved="true" >
  <goal name="g.0" proved="true">
  <transf name="reflection_l" proved="true" arg1="norm">
   <goal name="g.0.0" expl="reification check" proved="true">
   <proof prover="5"><result status="valid" time="0.02"/></proof>
   </goal>
   <goal name="g.0.1" expl="asserted formula" proved="true">
   <transf name="compute_in_goal" proved="true" >
    <goal name="g.0.1.0" expl="asserted formula" proved="true">
    <proof prover="0"><result status="valid" time="0.01" steps="13289"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="AssocAlgebraDecision" proved="true">
 <goal name="ext_minone" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="ext_minone.0" proved="true">
  <proof prover="5"><result status="valid" time="0.03"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="mon_append&#39;vc" expl="VC for mon_append" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="mon_append&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="2" timelimit="10" memlimit="4000"><result status="valid" time="0.02"/></proof>
  </goal>
  <goal name="mon_append&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="6" timelimit="1" memlimit="1000"><result status="valid" time="0.01" steps="91"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="interp_cons" proved="true">
 <proof prover="5"><result status="valid" time="0.49"/></proof>
 <transf name="compute_in_goal" proved="true" >
  <goal name="interp_cons.0" proved="true">
  <proof prover="10"><result status="valid" time="0.01" steps="708"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="interp_sum&#39;vc" expl="VC for interp_sum" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="interp_sum&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.01" steps="31"/></proof>
  </goal>
  <goal name="interp_sum&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="6"><result status="valid" time="0.01" steps="101"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="append_mon&#39;vc" expl="VC for append_mon" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="append_mon&#39;vc.0" expl="postcondition" proved="true">
  <transf name="compute_in_goal" proved="true" >
   <goal name="append_mon&#39;vc.0.0" expl="postcondition" proved="true">
   <proof prover="5"><result status="valid" time="0.03"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="mul_mon&#39;vc" expl="VC for mul_mon" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="mul_mon&#39;vc.0" expl="postcondition" proved="true">
  <proof prover="5" timelimit="1" memlimit="1000"><result status="valid" time="0.96"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="mul_devel&#39;vc" expl="VC for mul_devel" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="mul_devel&#39;vc.0" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="mul_devel&#39;vc.0.0" expl="postcondition" proved="true">
   <proof prover="10" timelimit="1" memlimit="1000"><result status="valid" time="0.33" steps="24225"/></proof>
   </goal>
   <goal name="mul_devel&#39;vc.0.1" expl="postcondition" proved="true">
   <proof prover="10" timelimit="1" memlimit="1000"><result status="valid" time="0.05" steps="1733"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="ext&#39;vc" expl="VC for ext" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="ext&#39;vc.0" expl="postcondition" proved="true">
  <proof prover="9"><result status="valid" time="0.11" steps="18426"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="ext_sub" proved="true">
 <proof prover="10"><result status="valid" time="0.01" steps="8"/></proof>
 </goal>
 <goal name="conv&#39;vc" expl="VC for conv" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="conv&#39;vc.0" expl="postcondition" proved="true">
  <proof prover="10" timelimit="1" memlimit="1000"><result status="valid" time="0.23" steps="6635"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="same&#39;vc" expl="VC for same" proved="true">
 <proof prover="6"><result status="valid" time="0.01" steps="120"/></proof>
 </goal>
 <goal name="squash_append" proved="true">
 <proof prover="2"><result status="valid" time="0.05"/></proof>
 <transf name="compute_in_goal" proved="true" >
  <goal name="squash_append.0" proved="true">
  <proof prover="0" timelimit="5" memlimit="2000"><result status="valid" time="0.04" steps="169533"/></proof>
  <proof prover="2"><result status="valid" time="0.06"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="insert_mon&#39;vc" expl="VC for insert_mon" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="insert_mon&#39;vc.0" expl="assertion" proved="true">
  <proof prover="9"><result status="valid" time="0.13" steps="19857"/></proof>
  </goal>
  <goal name="insert_mon&#39;vc.1" expl="variant decrease" proved="true">
  <proof prover="10" timelimit="1" memlimit="1000"><result status="valid" time="0.01" steps="26"/></proof>
  </goal>
  <goal name="insert_mon&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="9"><result status="valid" time="0.11" steps="18180"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="insertion_sort_mon&#39;vc" expl="VC for insertion_sort_mon" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="insertion_sort_mon&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="2"><result status="valid" time="0.04"/></proof>
  <proof prover="5"><result status="valid" time="0.02"/></proof>
  </goal>
  <goal name="insertion_sort_mon&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="10"><result status="valid" time="2.77" steps="40645"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="normalize&#39;&#39;vc" expl="VC for normalize&#39;" proved="true">
 <proof prover="6"><result status="valid" time="0.01" steps="12"/></proof>
 </goal>
 <goal name="normalize&#39;vc" expl="VC for normalize" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="normalize&#39;vc.0" expl="postcondition" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="normalize&#39;vc.0.0" expl="postcondition" proved="true">
   <transf name="compute_in_goal" proved="true" >
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="norm&#39;vc" expl="VC for norm" proved="true">
 <proof prover="6"><result status="valid" time="0.01" steps="60"/></proof>
 </goal>
 <goal name="norm&#39;&#39;vc" expl="VC for norm&#39;" proved="true">
 <proof prover="10"><result status="valid" time="0.02" steps="54"/></proof>
 </goal>
 <goal name="norm_f&#39;vc" expl="VC for norm_f" proved="true">
 <proof prover="0"><result status="valid" time="0.04" steps="96403"/></proof>
 </goal>
</theory>
<theory name="ReifyTests" proved="true">
 <goal name="A.Assoc" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="A.Unit_def_l" proved="true">
 <proof prover="0"><result status="valid" time="0.01" steps="632"/></proof>
 </goal>
 <goal name="A.Unit_def_r" proved="true">
 <proof prover="0"><result status="valid" time="0.01" steps="632"/></proof>
 </goal>
 <goal name="A.Comm" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="A.MulAssoc.Assoc" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="AUnitary" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="ANonTrivial" proved="true">
 <proof prover="0"><result status="valid" time="0.01" steps="728"/></proof>
 </goal>
 <goal name="ExtDistSumA" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="ExtDistSumR" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="AssocMulExt" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="UnitExt" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="CommMulExt" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="eq0&#39;refn&#39;vc" expl="VC for eq0&#39;refn" proved="true">
 <proof prover="10"><result status="valid" time="0.00" steps="1"/></proof>
 </goal>
 <goal name="g" proved="true">
 <transf name="introduce_premises" proved="true" >
  <goal name="g.0" proved="true">
  <transf name="reflection_l" proved="true" arg1="norm">
   <goal name="g.0.0" expl="reification check" proved="true">
   <proof prover="6"><result status="valid" time="0.01" steps="16"/></proof>
   </goal>
   <goal name="g.0.1" expl="asserted formula" proved="true">
   <transf name="split_goal_right" proved="true" >
    <goal name="g.0.1.0" proved="true">
    <transf name="compute_in_goal" proved="true" >
     <goal name="g.0.1.0.0" proved="true">
     <proof prover="6"><result status="valid" time="0.00" steps="13"/></proof>
     </goal>
    </transf>
    </goal>
    <goal name="g.0.1.1" proved="true">
    <proof prover="6"><result status="valid" time="0.02" steps="15"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="h" proved="true">
 <transf name="introduce_premises" proved="true" >
  <goal name="h.0" proved="true">
  <transf name="reflection_l" proved="true" arg1="norm">
   <goal name="h.0.0" expl="reification check" proved="true">
   <proof prover="6"><result status="valid" time="0.02" steps="16"/></proof>
   </goal>
   <goal name="h.0.1" expl="asserted formula" proved="true">
   <proof prover="6"><result status="valid" time="0.02" steps="111"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
