<?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="Alt-Ergo" version="2.2.0" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="1" name="Z3" version="4.6.0" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="2" name="Alt-Ergo" version="2.3.0" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="3" name="CVC4" version="1.8" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="4" name="CVC3" version="2.4.1" timelimit="5" steplimit="0" memlimit="2000"/>
<prover id="6" name="CVC5" version="1.0.5" timelimit="1" steplimit="0" memlimit="1000"/>
<prover id="7" name="CVC4" version="1.8" alternative="strings" timelimit="5" steplimit="0" memlimit="2000"/>
<file format="whyml" proved="true">
<path name=".."/><path name="stringlemmas.mlw"/>
<theory name="String_lemmas" proved="true">
 <goal name="in_base_concat&#39;vc" expl="VC for in_base_concat" proved="true">
 <proof prover="6"><result status="valid" time="0.172904" steps="21208"/></proof>
 </goal>
 <goal name="svalue_le_sub&#39;vc" expl="VC for svalue_le_sub" proved="true">
 <proof prover="6"><result status="valid" time="0.040000" steps="15184"/></proof>
 </goal>
 <goal name="svalue_le_sub_tail&#39;vc" expl="VC for svalue_le_sub_tail" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_sub_tail&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.040000" steps="12068"/></proof>
  </goal>
  <goal name="svalue_le_sub_tail&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.080000" steps="12041"/></proof>
  </goal>
  <goal name="svalue_le_sub_tail&#39;vc.2" expl="precondition" proved="true">
  <proof prover="4"><result status="valid" time="0.040000"/></proof>
  </goal>
  <goal name="svalue_le_sub_tail&#39;vc.3" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.070000" steps="12077"/></proof>
  </goal>
  <goal name="svalue_le_sub_tail&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="4"><result status="valid" time="0.130000"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_le_sub_concat&#39;vc" expl="VC for svalue_le_sub_concat" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_sub_concat&#39;vc.0" expl="assertion" proved="true">
  <proof prover="6"><result status="valid" time="0.090000" steps="12239"/></proof>
  </goal>
  <goal name="svalue_le_sub_concat&#39;vc.1" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.070000" steps="12275"/></proof>
  </goal>
  <goal name="svalue_le_sub_concat&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.040000" steps="12259"/></proof>
  </goal>
  <goal name="svalue_le_sub_concat&#39;vc.3" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.180000" steps="21227"/></proof>
  </goal>
  <goal name="svalue_le_sub_concat&#39;vc.4" expl="precondition" proved="true">
  <proof prover="4"><result status="valid" time="0.050000"/></proof>
  </goal>
  <goal name="svalue_le_sub_concat&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="4"><result status="valid" time="0.260000"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_le_sub_head&#39;vc" expl="VC for svalue_le_sub_head" proved="true">
 <proof prover="6"><result status="valid" time="0.200000" steps="20151"/></proof>
 </goal>
 <goal name="svalue_le_sub_frame&#39;vc" expl="VC for svalue_le_sub_frame" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_sub_frame&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.070000" steps="15744"/></proof>
  </goal>
  <goal name="svalue_le_sub_frame&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.100000" steps="22062"/></proof>
  </goal>
  <goal name="svalue_le_sub_frame&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.260000" steps="136"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_le_tail&#39;vc" expl="VC for svalue_le_tail" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_tail&#39;vc.0" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.050000" steps="12994"/></proof>
  </goal>
  <goal name="svalue_le_tail&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.050000" steps="13528"/></proof>
  </goal>
  <goal name="svalue_le_tail&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.080000" steps="12764"/></proof>
  </goal>
  <goal name="svalue_le_tail&#39;vc.3" expl="postcondition" proved="true">
  <proof prover="6"><result status="valid" time="0.170000" steps="21593"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_le_concat&#39;vc" expl="VC for svalue_le_concat" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_concat&#39;vc.0" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="13025"/></proof>
  </goal>
  <goal name="svalue_le_concat&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.050000" steps="13560"/></proof>
  </goal>
  <goal name="svalue_le_concat&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="12796"/></proof>
  </goal>
  <goal name="svalue_le_concat&#39;vc.3" expl="postcondition" proved="true">
  <proof prover="6"><result status="valid" time="0.210000" steps="22551"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_sub&#39;vc" expl="VC for svalue_sub" proved="true">
 <proof prover="6"><result status="valid" time="0.060000" steps="16305"/></proof>
 </goal>
 <goal name="svalue_sub_tail&#39;vc" expl="VC for svalue_sub_tail" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_sub_tail&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="4"><result status="valid" time="0.070000"/></proof>
  </goal>
  <goal name="svalue_sub_tail&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.100000" steps="13170"/></proof>
  </goal>
  <goal name="svalue_sub_tail&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.200000" steps="22713"/></proof>
  </goal>
  <goal name="svalue_sub_tail&#39;vc.3" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.040000" steps="13206"/></proof>
  </goal>
  <goal name="svalue_sub_tail&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="4"><result status="valid" time="0.240000"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_sub_concat&#39;vc" expl="VC for svalue_sub_concat" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_sub_concat&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="13406"/></proof>
  </goal>
  <goal name="svalue_sub_concat&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.050000" steps="13398"/></proof>
  </goal>
  <goal name="svalue_sub_concat&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.110000" steps="22988"/></proof>
  </goal>
  <goal name="svalue_sub_concat&#39;vc.3" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.090000" steps="13432"/></proof>
  </goal>
  <goal name="svalue_sub_concat&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="4"><result status="valid" time="0.340000"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_sub_head&#39;vc" expl="VC for svalue_sub_head" proved="true">
 <proof prover="6"><result status="valid" time="0.200000" steps="21322"/></proof>
 </goal>
 <goal name="svalue_sub_frame&#39;vc" expl="VC for svalue_sub_frame" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_sub_frame&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.120000" steps="16903"/></proof>
  </goal>
  <goal name="svalue_sub_frame&#39;vc.1" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.120000" steps="105"/></proof>
  </goal>
  <goal name="svalue_sub_frame&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.190000" steps="137"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_le_sub_lower_bound&#39;vc" expl="VC for svalue_le_sub_lower_bound" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_sub_lower_bound&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.090000" steps="16990"/></proof>
  </goal>
  <goal name="svalue_le_sub_lower_bound&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="13777"/></proof>
  </goal>
  <goal name="svalue_le_sub_lower_bound&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="129"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_sub_lower_bound&#39;vc" expl="VC for svalue_sub_lower_bound" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_sub_lower_bound&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.080000" steps="17057"/></proof>
  </goal>
  <goal name="svalue_sub_lower_bound&#39;vc.1" expl="precondition" proved="true">
  <proof prover="0"><result status="valid" time="0.040000" steps="29"/></proof>
  </goal>
  <goal name="svalue_sub_lower_bound&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.160000" steps="130"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_le_sub_upper_bound&#39;vc" expl="VC for svalue_le_sub_upper_bound" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_le_sub_upper_bound&#39;vc.0" expl="precondition" proved="true">
  <proof prover="1" memlimit="2000"><result status="valid" time="0.020000" steps="66290"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.120000" steps="14412"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="13964"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.3" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.090000" steps="14064"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.4" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.080000" steps="14056"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.5" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="17343"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.6" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.230000" steps="27887"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.7" expl="assertion" proved="true">
  <proof prover="1" memlimit="2000"><result status="valid" time="0.060000" steps="76431"/></proof>
  </goal>
  <goal name="svalue_le_sub_upper_bound&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="6"><result status="valid" time="1.733291" steps="133839"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="svalue_sub_upper_bound&#39;vc" expl="VC for svalue_sub_upper_bound" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="svalue_sub_upper_bound&#39;vc.0" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.120000" steps="17352"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.1" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.100000" steps="14557"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.2" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.080000" steps="14109"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.3" expl="variant decrease" proved="true">
  <proof prover="6"><result status="valid" time="0.060000" steps="14213"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.4" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.090000" steps="14205"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.5" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.170000" steps="17493"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.6" expl="precondition" proved="true">
  <proof prover="6"><result status="valid" time="0.234175" steps="28101"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.7" expl="assertion" proved="true">
  <proof prover="1" timelimit="1"><result status="valid" time="0.020000" steps="77215"/></proof>
  </goal>
  <goal name="svalue_sub_upper_bound&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="3"><result status="valid" time="0.433412" steps="85939"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="Conversions" proved="true">
 <goal name="lowconcat" proved="true">
 <proof prover="7"><result status="valid" time="0.080000" steps="17856"/></proof>
 </goal>
 <goal name="upconcat" proved="true">
 <proof prover="7"><result status="valid" time="0.090000" steps="17875"/></proof>
 </goal>
 <goal name="digitsublow" proved="true">
 <proof prover="7"><result status="valid" time="0.100000" steps="17896"/></proof>
 </goal>
 <goal name="digitsubup" proved="true">
 <proof prover="7"><result status="valid" time="0.100000" steps="17917"/></proof>
 </goal>
 <goal name="lowsub" proved="true">
 <proof prover="7"><result status="valid" time="0.100000" steps="17938"/></proof>
 </goal>
 <goal name="upsub" proved="true">
 <proof prover="7"><result status="valid" time="0.100000" steps="17959"/></proof>
 </goal>
 <goal name="lowupconcat" proved="true">
 <proof prover="7"><result status="valid" time="0.100000" steps="17978"/></proof>
 </goal>
 <goal name="digitsublowup" proved="true">
 <proof prover="2"><result status="valid" time="0.110000" steps="337"/></proof>
 </goal>
 <goal name="upsublowup" proved="true">
 <proof prover="7"><result status="valid" time="0.100000" steps="18020"/></proof>
 </goal>
 <goal name="lowsublowup" proved="true">
 <proof prover="7"><result status="valid" time="0.080000" steps="18042"/></proof>
 </goal>
 <goal name="digits&#39;vc" expl="VC for digits" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="digits&#39;vc.0" expl="assertion" proved="true">
  <proof prover="7"><result status="valid" time="0.080000" steps="18065"/></proof>
  </goal>
  <goal name="digits&#39;vc.1" expl="assertion" proved="true">
  <transf name="rewrite" proved="true" arg1="Assert">
   <goal name="digits&#39;vc.1.0" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="substring_get">
    <goal name="digits&#39;vc.1.0.0" expl="assertion" proved="true">
    <proof prover="2"><result status="valid" time="0.040000" steps="55"/></proof>
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.120000" steps="12284"/></proof>
    </goal>
    <goal name="digits&#39;vc.1.0.1" expl="rewrite premises" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.647952" steps="73072"/></proof>
    </goal>
    <goal name="digits&#39;vc.1.0.2" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="55"/></proof>
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.110000" steps="12272"/></proof>
    </goal>
    <goal name="digits&#39;vc.1.0.3" expl="rewrite premises" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.638394" steps="73056"/></proof>
    </goal>
    <goal name="digits&#39;vc.1.0.4" expl="rewrite premises" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.120000" steps="12272"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="digits&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.020000" steps="59"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="lower&#39;vc" expl="VC for lower" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="lower&#39;vc.0" expl="assertion" proved="true">
  <proof prover="7"><result status="valid" time="0.100000" steps="18105"/></proof>
  </goal>
  <goal name="lower&#39;vc.1" expl="assertion" proved="true">
  <transf name="rewrite" proved="true" arg1="Assert">
   <goal name="lower&#39;vc.1.0" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="substring_get">
    <goal name="lower&#39;vc.1.0.0" expl="assertion" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.100000" steps="12310"/></proof>
    </goal>
    <goal name="lower&#39;vc.1.0.1" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.100000" steps="18134"/></proof>
    </goal>
    <goal name="lower&#39;vc.1.0.2" expl="rewrite premises" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.080000" steps="12298"/></proof>
    </goal>
    <goal name="lower&#39;vc.1.0.3" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.090000" steps="18127"/></proof>
    </goal>
    <goal name="lower&#39;vc.1.0.4" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.020000" steps="57"/></proof>
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.100000" steps="12298"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="lower&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.020000" steps="61"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="upper&#39;vc" expl="VC for upper" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="upper&#39;vc.0" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="upper&#39;vc.0.0" expl="assertion" proved="true">
   <proof prover="7"><result status="valid" time="0.080000" steps="18144"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="upper&#39;vc.1" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="upper&#39;vc.1.0" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="Assert">
    <goal name="upper&#39;vc.1.0.0" expl="assertion" proved="true">
    <transf name="rewrite" proved="true" arg1="substring_get">
     <goal name="upper&#39;vc.1.0.0.0" expl="assertion" proved="true">
     <proof prover="2"><result status="valid" time="0.030000" steps="59"/></proof>
     <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.090000" steps="12318"/></proof>
     </goal>
     <goal name="upper&#39;vc.1.0.0.1" expl="rewrite premises" proved="true">
     <proof prover="7"><result status="valid" time="0.080000" steps="18173"/></proof>
     </goal>
     <goal name="upper&#39;vc.1.0.0.2" expl="rewrite premises" proved="true">
     <proof prover="2"><result status="valid" time="0.020000" steps="59"/></proof>
     <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.100000" steps="12324"/></proof>
     </goal>
     <goal name="upper&#39;vc.1.0.0.3" expl="rewrite premises" proved="true">
     <proof prover="7"><result status="valid" time="0.100000" steps="18166"/></proof>
     </goal>
     <goal name="upper&#39;vc.1.0.0.4" expl="rewrite premises" proved="true">
     <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.080000" steps="12324"/></proof>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
   <goal name="upper&#39;vc.1.1" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="59"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="upper&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="2"><result status="valid" time="0.030000" steps="64"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="diglow" proved="true">
 <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.090000" steps="12485"/></proof>
 </goal>
 <goal name="digup" proved="true">
 <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.090000" steps="12513"/></proof>
 </goal>
 <goal name="lowup" proved="true">
 <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.090000" steps="12549"/></proof>
 </goal>
 <goal name="tnt_low&#39;vc" expl="VC for tnt_low" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="tnt_low&#39;vc.0" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_low&#39;vc.0.0" expl="assertion" proved="true">
   <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.150000" steps="548"/></proof>
   </goal>
   <goal name="tnt_low&#39;vc.0.1" expl="assertion" proved="true">
   <proof prover="6"><result status="valid" time="0.060000" steps="12508"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_low&#39;vc.1" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_low&#39;vc.1.0" expl="assertion" proved="true">
   <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.140000" steps="16152"/></proof>
   </goal>
   <goal name="tnt_low&#39;vc.1.1" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="substring_get">
    <goal name="tnt_low&#39;vc.1.1.0" expl="assertion" proved="true">
    <proof prover="2"><result status="valid" time="0.020000" steps="70"/></proof>
    </goal>
    <goal name="tnt_low&#39;vc.1.1.1" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.110000" steps="18371"/></proof>
    </goal>
    <goal name="tnt_low&#39;vc.1.1.2" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="70"/></proof>
    </goal>
    <goal name="tnt_low&#39;vc.1.1.3" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.110000" steps="18364"/></proof>
    </goal>
    <goal name="tnt_low&#39;vc.1.1.4" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="70"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="tnt_low&#39;vc.1.2" expl="VC for tnt_low" proved="true">
   <proof prover="2"><result status="valid" time="0.030000" steps="75"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_low&#39;vc.2" expl="assertion" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.080000" steps="271"/></proof>
  </goal>
  <goal name="tnt_low&#39;vc.3" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.100000" steps="270"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="tnt_up&#39;vc" expl="VC for tnt_up" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="tnt_up&#39;vc.0" expl="assertion" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.160000" steps="564"/></proof>
  </goal>
  <goal name="tnt_up&#39;vc.1" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_up&#39;vc.1.0" expl="assertion" proved="true">
   <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.040000" steps="70"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.1.1" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="substring_get">
    <goal name="tnt_up&#39;vc.1.1.0" expl="assertion" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.110000" steps="12842"/></proof>
    </goal>
    <goal name="tnt_up&#39;vc.1.1.1" expl="rewrite premises" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.866407" steps="99671"/></proof>
    </goal>
    <goal name="tnt_up&#39;vc.1.1.2" expl="rewrite premises" proved="true">
    <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.090000" steps="12822"/></proof>
    </goal>
    <goal name="tnt_up&#39;vc.1.1.3" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.110000" steps="18882"/></proof>
    </goal>
    <goal name="tnt_up&#39;vc.1.1.4" expl="rewrite premises" proved="true">
    <proof prover="1" timelimit="1"><result status="valid" time="0.020000" steps="18544"/></proof>
    <proof prover="2"><result status="valid" time="0.030000" steps="70"/></proof>
    <proof prover="6"><result status="valid" time="0.110000" steps="12847"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="tnt_up&#39;vc.1.2" expl="VC for tnt_up" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="75"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_up&#39;vc.2" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_up&#39;vc.2.0" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.010000" steps="72"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.1" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.030000" steps="74"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.2" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="72"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.3" expl="VC for tnt_up" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="76"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.4" expl="VC for tnt_up" proved="true">
   <proof prover="2"><result status="valid" time="0.010000" steps="77"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.5" expl="VC for tnt_up" proved="true">
   <proof prover="2"><result status="valid" time="0.040000" steps="80"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.6" expl="VC for tnt_up" proved="true">
   <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.070000" steps="78"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.2.7" expl="VC for tnt_up" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="81"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_up&#39;vc.3" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_up&#39;vc.3.0" expl="postcondition" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="268"/></proof>
   </goal>
   <goal name="tnt_up&#39;vc.3.1" expl="postcondition" proved="true">
   <proof prover="2"><result status="valid" time="0.040000" steps="74"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="tnt_both&#39;vc" expl="VC for tnt_both" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="tnt_both&#39;vc.0" expl="assertion" proved="true">
  <proof prover="2"><result status="valid" time="0.160000" steps="552"/></proof>
  </goal>
  <goal name="tnt_both&#39;vc.1" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_both&#39;vc.1.0" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="72"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.1.1" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="substring_get">
    <goal name="tnt_both&#39;vc.1.1.0" expl="assertion" proved="true">
    <proof prover="2"><result status="valid" time="0.020000" steps="72"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.1.1.1" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.100000" steps="19126"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.1.1.2" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="72"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.1.1.3" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.100000" steps="19119"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.1.1.4" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.020000" steps="72"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="tnt_both&#39;vc.1.2" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.030000" steps="77"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_both&#39;vc.2" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_both&#39;vc.2.0" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="74"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.1" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.040000" steps="76"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.2" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.030000" steps="74"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.3" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.030000" steps="78"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.4" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="79"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.5" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="82"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.6" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="80"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.2.7" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.010000" steps="83"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_both&#39;vc.3" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_both&#39;vc.3.0" expl="assertion" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="74"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.3.1" expl="assertion" proved="true">
   <transf name="rewrite" proved="true" arg1="substring_get">
    <goal name="tnt_both&#39;vc.3.1.0" expl="assertion" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="74"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.3.1.1" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.100000" steps="19148"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.3.1.2" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="74"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.3.1.3" expl="rewrite premises" proved="true">
    <proof prover="7"><result status="valid" time="0.090000" steps="19141"/></proof>
    </goal>
    <goal name="tnt_both&#39;vc.3.1.4" expl="rewrite premises" proved="true">
    <proof prover="2"><result status="valid" time="0.030000" steps="74"/></proof>
    </goal>
   </transf>
   </goal>
   <goal name="tnt_both&#39;vc.3.2" expl="VC for tnt_both" proved="true">
   <proof prover="2"><result status="valid" time="0.040000" steps="79"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt_both&#39;vc.4" expl="assertion" proved="true">
  <proof prover="2"><result status="valid" time="0.090000" steps="275"/></proof>
  </goal>
  <goal name="tnt_both&#39;vc.5" expl="postcondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt_both&#39;vc.5.0" expl="postcondition" proved="true">
   <proof prover="2"><result status="valid" time="0.040000" steps="268"/></proof>
   </goal>
   <goal name="tnt_both&#39;vc.5.1" expl="postcondition" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="70"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="tnt&#39;vc" expl="VC for tnt" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="tnt&#39;vc.0" expl="precondition" proved="true">
  <proof prover="2"><result status="valid" time="0.040000" steps="76"/></proof>
  </goal>
  <goal name="tnt&#39;vc.1" expl="precondition" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="tnt&#39;vc.1.0" expl="precondition" proved="true">
   <proof prover="2"><result status="valid" time="0.020000" steps="74"/></proof>
   </goal>
   <goal name="tnt&#39;vc.1.1" expl="precondition" proved="true">
   <proof prover="2"><result status="valid" time="0.030000" steps="78"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="tnt&#39;vc.2" expl="precondition" proved="true">
  <proof prover="2"><result status="valid" time="0.030000" steps="255"/></proof>
  </goal>
  <goal name="tnt&#39;vc.3" expl="postcondition" proved="true">
  <proof prover="2"><result status="valid" time="0.050000" steps="427"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
<theory name="String_value" proved="true">
 <goal name="abs_value_sub_text&#39;vc" expl="VC for abs_value_sub_text" proved="true">
 <proof prover="6" timelimit="5" memlimit="2000"><result status="valid" time="0.069028" steps="20873"/></proof>
 </goal>
 <goal name="text_conversion&#39;vc" expl="VC for text_conversion" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="text_conversion&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.070000" steps="66"/></proof>
  </goal>
  <goal name="text_conversion&#39;vc.1" expl="precondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.120000" steps="263"/></proof>
  </goal>
  <goal name="text_conversion&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="4"><result status="valid" time="0.110000"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="abs_value_sub_text_frame&#39;vc" expl="VC for abs_value_sub_text_frame" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="abs_value_sub_text_frame&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.020000" steps="64"/></proof>
  </goal>
  <goal name="abs_value_sub_text_frame&#39;vc.1" expl="precondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.040000" steps="70"/></proof>
  </goal>
  <goal name="abs_value_sub_text_frame&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="2" timelimit="5" memlimit="2000"><result status="valid" time="0.240000" steps="333"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
