<?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.6.0" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="1" name="Eprover" version="2.0" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="CVC3" version="2.2" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="3" name="Spass" version="3.7" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="5" name="CVC4" version="1.5" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="7" name="Alt-Ergo" version="2.0.0" timelimit="5" steplimit="0" memlimit="1000"/>
<file format="whyml" proved="true">
<path name=".."/><path name=".."/><path name=".."/><path name="stdlib"/>
<path name="list.mlw"/>
<theory name="List" proved="true">
 <goal name="is_nil&#39;vc" expl="VC for is_nil" proved="true">
 <proof prover="7"><result status="valid" time="0.00" steps="7"/></proof>
 </goal>
</theory>
<theory name="Length" proved="true">
 <goal name="Length_nonnegative" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Length_nonnegative.0" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="Length_nil" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="Length_nil.0" proved="true">
  <proof prover="1"><result status="valid" time="0.01"/></proof>
  <proof prover="3"><result status="valid" time="0.03"/></proof>
  </goal>
  <goal name="Length_nil.1" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="4"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="Quant" proved="true">
 <goal name="for_all&#39;vc" expl="VC for for_all" proved="true">
 <proof prover="5"><result status="valid" time="0.04" steps="3751"/></proof>
 </goal>
 <goal name="for_some&#39;vc" expl="VC for for_some" proved="true">
 <proof prover="5"><result status="valid" time="0.02" steps="4830"/></proof>
 </goal>
 <goal name="mem&#39;vc" expl="VC for mem" proved="true">
 <proof prover="5"><result status="valid" time="0.02" steps="4082"/></proof>
 </goal>
</theory>
<theory name="Elements" proved="true">
 <goal name="elements_mem" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="elements_mem.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="64"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="NthLength" proved="true">
 <goal name="nth_none_1" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="nth_none_1.0" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="22"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="nth_none_2" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="nth_none_2.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="22"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="nth_none_3" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="nth_none_3.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="23"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="NthHdTl" proved="true">
 <goal name="Nth_tl" proved="true">
 <proof prover="7"><result status="valid" time="0.00" steps="21"/></proof>
 </goal>
 <goal name="Nth0_head" proved="true">
 <proof prover="1"><result status="valid" time="0.01"/></proof>
 </goal>
</theory>
<theory name="Append" proved="true">
 <goal name="Append_assoc" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Append_assoc.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="Append_assoc.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="3"/></proof>
   </goal>
   <goal name="Append_assoc.0.1" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="Append_l_nil" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Append_l_nil.0" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="Append_length" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Append_length.0" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="23"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="mem_append" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="mem_append.0" proved="true">
  <proof prover="7"><result status="valid" time="0.06" steps="231"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="mem_decomp" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="mem_decomp.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="mem_decomp.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="3"/></proof>
   </goal>
   <goal name="mem_decomp.0.1" proved="true">
   <proof prover="3"><result status="valid" time="0.42"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="NthLengthAppend" proved="true">
 <goal name="nth_append_1" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="nth_append_1.0" proved="true">
  <proof prover="7"><result status="valid" time="0.02" steps="62"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="nth_append_2" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="nth_append_2.0" proved="true">
  <proof prover="7"><result status="valid" time="0.02" steps="44"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="Reverse" proved="true">
 <goal name="reverse_append" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="reverse_append.0" proved="true">
  <proof prover="7"><result status="valid" time="0.09" steps="240"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="reverse_cons" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="2"/></proof>
 </goal>
 <goal name="cons_reverse" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="cons_reverse.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="35"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="reverse_reverse" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="reverse_reverse.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="12"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="reverse_mem" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="reverse_mem.0" proved="true">
  <proof prover="7"><result status="valid" time="0.03" steps="195"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="Reverse_length" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Reverse_length.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="28"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="RevAppend" proved="true">
 <goal name="rev_append_append_l" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="rev_append_append_l.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="17"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="rev_append_length" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="rev_append_length.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="23"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="rev_append_def" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="rev_append_def.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="31"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="rev_append_append_r" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="40"/></proof>
 </goal>
</theory>
<theory name="Sorted" proved="true">
 <goal name="sorted_mem" proved="true">
 <transf name="split_goal_right" proved="true" >
  <goal name="sorted_mem.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="52"/></proof>
  </goal>
  <goal name="sorted_mem.1" proved="true">
  <transf name="induction_pr" proved="true" >
   <goal name="sorted_mem.1.0" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
   <goal name="sorted_mem.1.1" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="13"/></proof>
   </goal>
   <goal name="sorted_mem.1.2" proved="true">
   <proof prover="7"><result status="valid" time="0.03" steps="118"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="sorted_mem.2" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="18"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="sorted_append" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="sorted_append.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="sorted_append.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="6"/></proof>
   </goal>
   <goal name="sorted_append.0.1" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="4"/></proof>
   </goal>
   <goal name="sorted_append.0.2" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
   <goal name="sorted_append.0.3" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="7"/></proof>
   </goal>
   <goal name="sorted_append.0.4" proved="true">
   <proof prover="7"><result status="valid" time="0.11" steps="375"/></proof>
   </goal>
   <goal name="sorted_append.0.5" proved="true">
   <proof prover="7"><result status="valid" time="0.12" steps="378"/></proof>
   </goal>
   <goal name="sorted_append.0.6" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="46"/></proof>
   </goal>
   <goal name="sorted_append.0.7" proved="true">
   <proof prover="7"><result status="valid" time="0.22" steps="894"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="SortedInt" proved="true">
 <goal name="Transitive.Trans" proved="true">
 <proof prover="7"><result status="valid" time="0.00" steps="3"/></proof>
 </goal>
</theory>
<theory name="RevSorted" proved="true">
 <goal name="Incr.Transitive.Trans" proved="true">
 <proof prover="7"><result status="valid" time="0.00" steps="4"/></proof>
 </goal>
 <goal name="Decr.Transitive.Trans" proved="true">
 <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
 </goal>
 <goal name="rev_append_sorted_incr" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="rev_append_sorted_incr.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="rev_append_sorted_incr.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="5"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.1" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="6"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.2" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="28"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.3" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="8"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.4" proved="true">
   <proof prover="5"><result status="valid" time="0.07" steps="22303"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.5" proved="true">
   <proof prover="7"><result status="valid" time="0.03" steps="60"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.6" proved="true">
   <proof prover="7"><result status="valid" time="0.73" steps="2216"/></proof>
   </goal>
   <goal name="rev_append_sorted_incr.0.7" proved="true">
   <proof prover="1"><result status="valid" time="0.92"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="rev_append_sorted_decr" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="rev_append_sorted_decr.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="rev_append_sorted_decr.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="5"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.1" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="6"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.2" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="34"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.3" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="8"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.4" proved="true">
   <proof prover="5"><result status="valid" time="0.05" steps="25376"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.5" proved="true">
   <proof prover="7"><result status="valid" time="0.03" steps="72"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.6" proved="true">
   <proof prover="7"><result status="valid" time="0.22" steps="1011"/></proof>
   </goal>
   <goal name="rev_append_sorted_decr.0.7" proved="true">
   <proof prover="5"><result status="valid" time="0.07" steps="13256"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="NumOcc" proved="true">
 <goal name="Num_Occ_NonNeg" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Num_Occ_NonNeg.0" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="9"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="Mem_Num_Occ" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Mem_Num_Occ.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="Mem_Num_Occ.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="6"/></proof>
   </goal>
   <goal name="Mem_Num_Occ.0.1" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
   <goal name="Mem_Num_Occ.0.2" proved="true">
   <proof prover="7"><result status="valid" time="0.01" steps="21"/></proof>
   </goal>
   <goal name="Mem_Num_Occ.0.3" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="12"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="Append_Num_Occ" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Append_Num_Occ.0" proved="true">
  <proof prover="7"><result status="valid" time="0.02" steps="86"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="reverse_num_occ" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="reverse_num_occ.0" proved="true">
  <proof prover="7"><result status="valid" time="0.11" steps="397"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="Permut" proved="true">
 <goal name="Permut_refl" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="2"/></proof>
 </goal>
 <goal name="Permut_sym" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="3"/></proof>
 </goal>
 <goal name="Permut_trans" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="6"/></proof>
 </goal>
 <goal name="Permut_cons" proved="true">
 <proof prover="7"><result status="valid" time="0.06" steps="159"/></proof>
 </goal>
 <goal name="Permut_swap" proved="true">
 <proof prover="7"><result status="valid" time="0.11" steps="405"/></proof>
 </goal>
 <goal name="Permut_cons_append" proved="true">
 <proof prover="7"><result status="valid" time="0.11" steps="170"/></proof>
 </goal>
 <goal name="Permut_assoc" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="4"/></proof>
 </goal>
 <goal name="Permut_append" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="18"/></proof>
 </goal>
 <goal name="Permut_append_swap" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="4"/></proof>
 </goal>
 <goal name="Permut_mem" proved="true">
 <proof prover="7"><result status="valid" time="0.01" steps="16"/></proof>
 </goal>
 <goal name="Permut_length" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="Permut_length.0" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="Permut_length.0.0" proved="true">
   <transf name="destruct_term" proved="true" arg1="l2">
    <goal name="Permut_length.0.0.0" proved="true">
    <proof prover="0"><result status="valid" time="0.02" steps="46340"/></proof>
    </goal>
    <goal name="Permut_length.0.0.1" proved="true">
    <proof prover="5" timelimit="1"><result status="valid" time="0.01" steps="6826"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="Permut_length.0.1" proved="true">
   <transf name="unfold" proved="true" arg1="permut" arg2="in" arg3="H">
    <goal name="Permut_length.0.1.0" proved="true">
    <transf name="assert" proved="true" arg1="(num_occ x1 l1 &gt;= 1)">
     <goal name="Permut_length.0.1.0.0" expl="asserted formula" proved="true">
     <proof prover="5" timelimit="1"><result status="valid" time="0.02" steps="8416"/></proof>
     </goal>
     <goal name="Permut_length.0.1.0.1" proved="true">
     <transf name="assert" proved="true" arg1="(mem x1 l2)">
      <goal name="Permut_length.0.1.0.1.0" expl="asserted formula" proved="true">
      <proof prover="5" timelimit="1"><result status="valid" time="0.02" steps="8521"/></proof>
      </goal>
      <goal name="Permut_length.0.1.0.1.1" proved="true">
      <transf name="instantiate" proved="true" arg1="mem_decomp" arg2="x1,l2">
       <goal name="Permut_length.0.1.0.1.1.0" proved="true">
       <transf name="destruct" proved="true" arg1="Hinst">
        <goal name="Permut_length.0.1.0.1.1.0.0" expl="destruct premise" proved="true">
        <proof prover="5" timelimit="1"><result status="valid" time="0.01" steps="7350"/></proof>
        </goal>
        <goal name="Permut_length.0.1.0.1.1.0.1" proved="true">
        <transf name="destruct" proved="true" arg1="Hinst">
         <goal name="Permut_length.0.1.0.1.1.0.1.0" proved="true">
         <transf name="destruct" proved="true" arg1="Hinst">
          <goal name="Permut_length.0.1.0.1.1.0.1.0.0" proved="true">
          <transf name="assert" proved="true" arg1="(permut x (l1 ++ l2))">
           <goal name="Permut_length.0.1.0.1.1.0.1.0.0.0" expl="asserted formula" proved="true">
           <proof prover="2"><result status="valid" time="4.07"/></proof>
           </goal>
           <goal name="Permut_length.0.1.0.1.1.0.1.0.0.1" proved="true">
           <proof prover="5" timelimit="1"><result status="valid" time="0.04" steps="9963"/></proof>
           </goal>
          </transf>
          </goal>
         </transf>
         </goal>
        </transf>
        </goal>
       </transf>
       </goal>
      </transf>
      </goal>
     </transf>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="Distinct" proved="true">
 <goal name="distinct_append" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="distinct_append.0" proved="true">
  <transf name="split_goal_right" proved="true" >
   <goal name="distinct_append.0.0" proved="true">
   <proof prover="7"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
   <goal name="distinct_append.0.1" proved="true">
   <proof prover="7"><result status="valid" time="0.17" steps="863"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="FoldLeft" proved="true">
 <goal name="fold_left_append" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="fold_left_append.0" proved="true">
  <proof prover="7"><result status="valid" time="0.00" steps="17"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="FoldRight" proved="true">
 <goal name="fold_right_append" proved="true">
 <transf name="induction_ty_lex" proved="true" >
  <goal name="fold_right_append.0" proved="true">
  <proof prover="7"><result status="valid" time="0.01" steps="17"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
