<?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="5" name="Alt-Ergo" version="2.3.3" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="6" name="CVC4" version="1.8" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="7" name="Z3" version="4.8.10" timelimit="5" steplimit="0" memlimit="1000"/>
<file format="whyml" proved="true">
<path name=".."/><path name="verifythis_2018_le_rouge_et_le_noir_1.mlw"/>
<theory name="ColoredTiles" proved="true">
 <goal name="valid_contr" proved="true">
 <proof prover="5"><result status="valid" time="0.01" steps="16"/></proof>
 </goal>
 <goal name="colo_0" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="colo_0.0" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="15"/></proof>
  </goal>
  <goal name="colo_0.1" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="17"/></proof>
  </goal>
  <goal name="colo_0.2" proved="true">
  <proof prover="6"><result status="valid" time="0.08" steps="21408"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="colo_1" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="colo_1.0" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="12"/></proof>
  </goal>
  <goal name="colo_1.1" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="48"/></proof>
  </goal>
  <goal name="colo_1.2" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="36"/></proof>
  </goal>
  <goal name="colo_1.3" proved="true">
  <proof prover="6"><result status="valid" time="0.08" steps="21437"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="colo_2" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="colo_2.0" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="13"/></proof>
  </goal>
  <goal name="colo_2.1" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="13"/></proof>
  </goal>
  <goal name="colo_2.2" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="48"/></proof>
  </goal>
  <goal name="colo_2.3" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="27"/></proof>
  </goal>
  <goal name="colo_2.4" proved="true">
  <proof prover="5"><result status="valid" time="0.11" steps="966"/></proof>
  </goal>
  <goal name="colo_2.5" proved="true">
  <proof prover="6"><result status="valid" time="0.09" steps="21988"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="colo_3" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="colo_3.0" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="16"/></proof>
  </goal>
  <goal name="colo_3.1" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="28"/></proof>
  </goal>
  <goal name="colo_3.2" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="16"/></proof>
  </goal>
  <goal name="colo_3.3" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="17"/></proof>
  </goal>
  <goal name="colo_3.4" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="18"/></proof>
  </goal>
  <goal name="colo_3.5" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="17"/></proof>
  </goal>
  <goal name="colo_3.6" proved="true">
  <proof prover="5"><result status="valid" time="0.12" steps="795"/></proof>
  </goal>
  <goal name="colo_3.7" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="33"/></proof>
  </goal>
  <goal name="colo_3.8" proved="true">
  <proof prover="5"><result status="valid" time="0.17" steps="1387"/></proof>
  </goal>
  <goal name="colo_3.9" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="60"/></proof>
  </goal>
  <goal name="colo_3.10" proved="true">
  <proof prover="5"><result status="valid" time="0.30" steps="1518"/></proof>
  </goal>
  <goal name="colo_3.11" proved="true">
  <proof prover="6"><result status="valid" time="0.21" steps="35162"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="valid_split_fb&#39;vc" expl="VC for valid_split_fb" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="valid_split_fb&#39;vc.0" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="6"/></proof>
  </goal>
  <goal name="valid_split_fb&#39;vc.1" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="valid_split_fb&#39;vc.1.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="43"/></proof>
   </goal>
   <goal name="valid_split_fb&#39;vc.1.1" expl="VC for valid_split_fb" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="32"/></proof>
   </goal>
   <goal name="valid_split_fb&#39;vc.1.2" expl="VC for valid_split_fb" proved="true">
   <proof prover="5"><result status="valid" time="0.08" steps="372"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="valid_split_fb&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.12" steps="737"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="valid_restrict&#39;vc" expl="VC for valid_restrict" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="valid_restrict&#39;vc.0" expl="postcondition" proved="true">
  <transf name="split_all_full" proved="true" >
   <goal name="valid_restrict&#39;vc.0.0" expl="postcondition" proved="true">
   <proof prover="5"><result status="valid" time="0.48" steps="2214"/></proof>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="first_black_tile&#39;vc" expl="VC for first_black_tile" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="first_black_tile&#39;vc.0" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="30"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.1" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="9"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.2" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="24"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.3" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="first_black_tile&#39;vc.3.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="19"/></proof>
   </goal>
   <goal name="first_black_tile&#39;vc.3.1" expl="VC for first_black_tile" proved="true">
   <proof prover="5"><result status="valid" time="0.04" steps="168"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="first_black_tile&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="66"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="53"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.6" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="137"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.7" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="91"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="addleft&#39;vc" expl="VC for addleft" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="addleft&#39;vc.0" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="4"/></proof>
  </goal>
  <goal name="addleft&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="26"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="addleft_fb" proved="true">
 <transf name="introduce_premises" proved="true" >
  <goal name="addleft_fb.0" proved="true">
  <transf name="induction" proved="true" arg1="nr">
   <goal name="addleft_fb.0.0" expl="base case" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="24"/></proof>
   </goal>
   <goal name="addleft_fb.0.1" expl="recursive case" proved="true">
   <transf name="split_all_full" proved="true" >
    <goal name="addleft_fb.0.1.0" expl="recursive case" proved="true">
    <proof prover="7"><result status="valid" time="0.22" steps="362634"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="mapaddleft_fb" proved="true">
 <proof prover="5"><result status="valid" time="0.02" steps="82"/></proof>
 </goal>
 <goal name="bij_image&#39;vc" expl="VC for bij_image" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="bij_image&#39;vc.0" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="30"/></proof>
  </goal>
  <goal name="bij_image&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="34"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="bij_cardinal&#39;vc" expl="VC for bij_cardinal" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="bij_cardinal&#39;vc.0" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="4"/></proof>
  </goal>
  <goal name="bij_cardinal&#39;vc.1" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="6"/></proof>
  </goal>
  <goal name="bij_cardinal&#39;vc.2" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="27"/></proof>
  </goal>
  <goal name="bij_cardinal&#39;vc.3" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="8"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="ext" proved="true">
 <proof prover="5"><result status="valid" time="0.01" steps="4"/></proof>
 </goal>
 <goal name="app_eq" proved="true">
 <proof prover="5"><result status="valid" time="0.01" steps="4"/></proof>
 </goal>
 <goal name="addleft_result&#39;vc" expl="VC for addleft_result" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="addleft_result&#39;vc.0" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.06" steps="144"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.1" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="6"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.2" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="10"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.3" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="14"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.4" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="14"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.5" expl="assertion" proved="true">
  <proof prover="6"><result status="valid" time="0.10" steps="25271"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.6" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="addleft_result&#39;vc.6.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="2.00" steps="3241"/></proof>
   </goal>
   <goal name="addleft_result&#39;vc.6.1" expl="VC for addleft_result" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="22"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="addleft_result&#39;vc.7" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="100"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="6"><result status="valid" time="3.45" steps="1529543"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="addleft_bijective&#39;vc" expl="VC for addleft_bijective" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="addleft_bijective&#39;vc.0" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.25" steps="464"/></proof>
  </goal>
  <goal name="addleft_bijective&#39;vc.1" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.07" steps="327"/></proof>
  </goal>
  <goal name="addleft_bijective&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="25"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="mapaddleft_card&#39;vc" expl="VC for mapaddleft_card" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="mapaddleft_card&#39;vc.0" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="2"/></proof>
  </goal>
  <goal name="mapaddleft_card&#39;vc.1" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="8"/></proof>
  </goal>
  <goal name="mapaddleft_card&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="12"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="addleft_valid&#39;vc" expl="VC for addleft_valid" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="addleft_valid&#39;vc.0" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="4"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.1" expl="assertion" proved="true">
  <proof prover="6"><result status="valid" time="1.79" steps="299979"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.2" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="14"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.3" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="20"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.4" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.12" steps="261"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="6"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="mapaddleft_valid&#39;vc" expl="VC for mapaddleft_valid" proved="true">
 <proof prover="5"><result status="valid" time="0.06" steps="346"/></proof>
 </goal>
 <goal name="mapaddleft_length&#39;vc" expl="VC for mapaddleft_length" proved="true">
 <proof prover="5"><result status="valid" time="0.03" steps="98"/></proof>
 </goal>
 <goal name="disjoint_union&#39;vc" expl="VC for disjoint_union" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="disjoint_union&#39;vc.0" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="42"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.1" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="7"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.2" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="33"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.3" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="disjoint_union&#39;vc.3.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="6"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.1" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="12"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.2" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="43"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.3" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="11"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.4" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="12"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.5" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="12"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.6" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="9"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.7" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="14"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.8" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="11"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.9" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="11"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.10" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="14"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.11" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="9"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.12" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.01" steps="12"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.13" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.03" steps="58"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.14" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="59"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.15" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="56"/></proof>
   </goal>
   <goal name="disjoint_union&#39;vc.3.16" expl="VC for disjoint_union" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="10"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="disjoint_union&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="2"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.05" steps="108"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="enum&#39;vc" expl="VC for enum" proved="true">
 <transf name="split_vc" proved="true" >
  <goal name="enum&#39;vc.0" expl="array creation size" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="0"/></proof>
  </goal>
  <goal name="enum&#39;vc.1" expl="array creation size" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="2"/></proof>
  </goal>
  <goal name="enum&#39;vc.2" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="4"/></proof>
  </goal>
  <goal name="enum&#39;vc.3" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="10"/></proof>
  </goal>
  <goal name="enum&#39;vc.4" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="180"/></proof>
  </goal>
  <goal name="enum&#39;vc.5" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="16"/></proof>
  </goal>
  <goal name="enum&#39;vc.6" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="22"/></proof>
  </goal>
  <goal name="enum&#39;vc.7" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.22" steps="1176"/></proof>
  </goal>
  <goal name="enum&#39;vc.8" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="28"/></proof>
  </goal>
  <goal name="enum&#39;vc.9" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.01" steps="34"/></proof>
  </goal>
  <goal name="enum&#39;vc.10" expl="assertion" proved="true">
  <proof prover="6"><result status="valid" time="0.42" steps="68434"/></proof>
  </goal>
  <goal name="enum&#39;vc.11" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="40"/></proof>
  </goal>
  <goal name="enum&#39;vc.12" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="46"/></proof>
  </goal>
  <goal name="enum&#39;vc.13" expl="assertion" proved="true">
  <proof prover="6"><result status="valid" time="0.19" steps="42839"/></proof>
  </goal>
  <goal name="enum&#39;vc.14" expl="assertion" proved="true">
  <transf name="case" proved="true" arg1="i=3">
   <goal name="enum&#39;vc.14.0" expl="true case (assertion)" proved="true">
   <transf name="rewrite" proved="true" arg1="h">
    <goal name="enum&#39;vc.14.0.0" expl="true case (assertion)" proved="true">
    <transf name="rewrite" proved="true" arg1="Assert">
     <goal name="enum&#39;vc.14.0.0.0" expl="true case (assertion)" proved="true">
     <transf name="split_all_full" proved="true" >
      <goal name="enum&#39;vc.14.0.0.0.0" expl="VC for enum" proved="true">
      <transf name="introduce_premises" proved="true" >
       <goal name="enum&#39;vc.14.0.0.0.0.0" expl="VC for enum" proved="true">
       <transf name="apply" proved="true" arg1="colo_31">
        <goal name="enum&#39;vc.14.0.0.0.0.0.0" expl="apply premises" proved="true">
        <proof prover="5"><result status="valid" time="0.02" steps="60"/></proof>
        </goal>
        <goal name="enum&#39;vc.14.0.0.0.0.0.1" expl="apply premises" proved="true">
        <proof prover="5"><result status="valid" time="0.02" steps="60"/></proof>
        </goal>
       </transf>
       </goal>
      </transf>
      </goal>
      <goal name="enum&#39;vc.14.0.0.0.1" expl="VC for enum" proved="true">
      <proof prover="5"><result status="valid" time="0.10" steps="404"/></proof>
      </goal>
      <goal name="enum&#39;vc.14.0.0.0.2" expl="VC for enum" proved="true">
      <transf name="introduce_premises" proved="true" >
       <goal name="enum&#39;vc.14.0.0.0.2.0" expl="VC for enum" proved="true">
       <transf name="apply" proved="true" arg1="colo_3">
        <goal name="enum&#39;vc.14.0.0.0.2.0.0" expl="apply premises" proved="true">
        <proof prover="5"><result status="valid" time="0.10" steps="404"/></proof>
        </goal>
        <goal name="enum&#39;vc.14.0.0.0.2.0.1" expl="apply premises" proved="true">
        <transf name="apply" proved="true" arg1="H">
        </transf>
        </goal>
       </transf>
       </goal>
      </transf>
      </goal>
     </transf>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
   <goal name="enum&#39;vc.14.1" expl="false case (assertion)" proved="true">
   <proof prover="5"><result status="valid" time="0.21" steps="1045"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.15" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.70" steps="1927"/></proof>
  </goal>
  <goal name="enum&#39;vc.16" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="67"/></proof>
  </goal>
  <goal name="enum&#39;vc.17" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.06" steps="224"/></proof>
  </goal>
  <goal name="enum&#39;vc.18" expl="loop invariant init" proved="true">
  <transf name="assert" proved="true" arg1="(i=0\/i=1\/i=2\/i=3)">
   <goal name="enum&#39;vc.18.0" expl="asserted formula" proved="true">
   <proof prover="5"><result status="valid" time="0.02" steps="61"/></proof>
   </goal>
   <goal name="enum&#39;vc.18.1" expl="loop invariant init" proved="true">
   <transf name="revert" proved="true" arg1="h">
    <goal name="enum&#39;vc.18.1.0" expl="loop invariant init" proved="true">
    <transf name="split_all_full" proved="true" >
     <goal name="enum&#39;vc.18.1.0.0" expl="loop invariant init" proved="true">
     <proof prover="5"><result status="valid" time="0.48" steps="1227"/></proof>
     </goal>
     <goal name="enum&#39;vc.18.1.0.1" expl="loop invariant init" proved="true">
     <proof prover="5"><result status="valid" time="0.46" steps="1225"/></proof>
     </goal>
     <goal name="enum&#39;vc.18.1.0.2" expl="loop invariant init" proved="true">
     <proof prover="5"><result status="valid" time="0.45" steps="1223"/></proof>
     </goal>
     <goal name="enum&#39;vc.18.1.0.3" expl="loop invariant init" proved="true">
     <transf name="introduce_premises" proved="true" >
      <goal name="enum&#39;vc.18.1.0.3.0" expl="loop invariant init" proved="true">
      <transf name="replace" proved="true" arg1="i" arg2="3">
       <goal name="enum&#39;vc.18.1.0.3.0.0" expl="loop invariant init" proved="true">
       <transf name="replace" proved="true" arg1="sets[3]" arg2="colorings3">
        <goal name="enum&#39;vc.18.1.0.3.0.0.0" expl="loop invariant init" proved="true">
        <transf name="rewrite" proved="true" arg1="Assert">
         <goal name="enum&#39;vc.18.1.0.3.0.0.0.0" expl="loop invariant init" proved="true">
         <proof prover="5"><result status="valid" time="0.04" steps="65"/></proof>
         </goal>
        </transf>
        </goal>
        <goal name="enum&#39;vc.18.1.0.3.0.0.1" expl="equality hypothesis" proved="true">
        <proof prover="6"><result status="valid" time="0.20" steps="50857"/></proof>
        </goal>
       </transf>
       </goal>
       <goal name="enum&#39;vc.18.1.0.3.0.1" expl="equality hypothesis" proved="true">
       <proof prover="5"><result status="valid" time="0.03" steps="63"/></proof>
       </goal>
      </transf>
      </goal>
     </transf>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.19" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="65"/></proof>
  </goal>
  <goal name="enum&#39;vc.20" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="65"/></proof>
  </goal>
  <goal name="enum&#39;vc.21" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="71"/></proof>
  </goal>
  <goal name="enum&#39;vc.22" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="75"/></proof>
  </goal>
  <goal name="enum&#39;vc.23" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="71"/></proof>
  </goal>
  <goal name="enum&#39;vc.24" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="71"/></proof>
  </goal>
  <goal name="enum&#39;vc.25" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="71"/></proof>
  </goal>
  <goal name="enum&#39;vc.26" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.07" steps="262"/></proof>
  </goal>
  <goal name="enum&#39;vc.27" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.07" steps="266"/></proof>
  </goal>
  <goal name="enum&#39;vc.28" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="enum&#39;vc.28.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="0.05" steps="85"/></proof>
   </goal>
   <goal name="enum&#39;vc.28.1" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.05" steps="87"/></proof>
   </goal>
   <goal name="enum&#39;vc.28.2" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.31" steps="605"/></proof>
   </goal>
   <goal name="enum&#39;vc.28.3" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.05" steps="91"/></proof>
   </goal>
   <goal name="enum&#39;vc.28.4" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.14" steps="344"/></proof>
   </goal>
   <goal name="enum&#39;vc.28.5" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.05" steps="95"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.29" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.12" steps="311"/></proof>
  </goal>
  <goal name="enum&#39;vc.30" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.12" steps="387"/></proof>
  </goal>
  <goal name="enum&#39;vc.31" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.12" steps="305"/></proof>
  </goal>
  <goal name="enum&#39;vc.32" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="1.23" steps="2209"/></proof>
  </goal>
  <goal name="enum&#39;vc.33" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.05" steps="80"/></proof>
  </goal>
  <goal name="enum&#39;vc.34" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="88"/></proof>
  </goal>
  <goal name="enum&#39;vc.35" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="88"/></proof>
  </goal>
  <goal name="enum&#39;vc.36" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="88"/></proof>
  </goal>
  <goal name="enum&#39;vc.37" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.38" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.05" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.39" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.40" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="95"/></proof>
  </goal>
  <goal name="enum&#39;vc.41" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.42" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.05" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.43" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.44" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.45" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.46" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="96"/></proof>
  </goal>
  <goal name="enum&#39;vc.47" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.05" steps="100"/></proof>
  </goal>
  <goal name="enum&#39;vc.48" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="enum&#39;vc.48.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="0.06" steps="104"/></proof>
   </goal>
   <goal name="enum&#39;vc.48.1" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.36" steps="804"/></proof>
   </goal>
   <goal name="enum&#39;vc.48.2" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="2.72" steps="2614"/></proof>
   </goal>
   <goal name="enum&#39;vc.48.3" expl="VC for enum" proved="true">
   <transf name="case" proved="true" arg1="i&lt;k">
    <goal name="enum&#39;vc.48.3.0" expl="true case" proved="true">
    <proof prover="5"><result status="valid" time="0.11" steps="399"/></proof>
    </goal>
    <goal name="enum&#39;vc.48.3.1" expl="false case" proved="true">
    <transf name="case" proved="true" arg1="i=k">
     <goal name="enum&#39;vc.48.3.1.0" expl="false case (true case)" proved="true">
     <proof prover="5"><result status="valid" time="0.19" steps="415"/></proof>
     </goal>
     <goal name="enum&#39;vc.48.3.1.1" expl="false case" proved="true">
     <transf name="assert" proved="true" arg1="(get1 c i = get1 c[k+1 ..] (i-k-1))">
      <goal name="enum&#39;vc.48.3.1.1.0" expl="asserted formula" proved="true">
      <proof prover="5"><result status="valid" time="0.70" steps="1107"/></proof>
      </goal>
      <goal name="enum&#39;vc.48.3.1.1.1" expl="false case" proved="true">
      <proof prover="5"><result status="valid" time="0.74" steps="1114"/></proof>
      </goal>
     </transf>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
   <goal name="enum&#39;vc.48.4" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.62" steps="934"/></proof>
   </goal>
   <goal name="enum&#39;vc.48.5" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.05" steps="110"/></proof>
   </goal>
   <goal name="enum&#39;vc.48.6" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.18" steps="400"/></proof>
   </goal>
   <goal name="enum&#39;vc.48.7" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.04" steps="114"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.49" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="96"/></proof>
  </goal>
  <goal name="enum&#39;vc.50" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.05" steps="100"/></proof>
  </goal>
  <goal name="enum&#39;vc.51" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.52" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.08" steps="331"/></proof>
  </goal>
  <goal name="enum&#39;vc.53" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.09" steps="336"/></proof>
  </goal>
  <goal name="enum&#39;vc.54" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.18" steps="394"/></proof>
  </goal>
  <goal name="enum&#39;vc.55" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.16" steps="487"/></proof>
  </goal>
  <goal name="enum&#39;vc.56" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.14" steps="386"/></proof>
  </goal>
  <goal name="enum&#39;vc.57" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.34" steps="1071"/></proof>
  </goal>
  <goal name="enum&#39;vc.58" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.06" steps="106"/></proof>
  </goal>
  <goal name="enum&#39;vc.59" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="84"/></proof>
  </goal>
  <goal name="enum&#39;vc.60" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="92"/></proof>
  </goal>
  <goal name="enum&#39;vc.61" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.32" steps="673"/></proof>
  </goal>
  <goal name="enum&#39;vc.62" expl="assertion" proved="true">
  <transf name="introduce_premises" proved="true" >
   <goal name="enum&#39;vc.62.0" expl="assertion" proved="true">
   <transf name="inline_goal" proved="true" >
    <goal name="enum&#39;vc.62.0.0" expl="assertion" proved="true">
    <proof prover="5"><result status="valid" time="0.34" steps="953"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.63" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="92"/></proof>
  </goal>
  <goal name="enum&#39;vc.64" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="92"/></proof>
  </goal>
  <goal name="enum&#39;vc.65" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.66" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.06" steps="102"/></proof>
  </goal>
  <goal name="enum&#39;vc.67" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.04" steps="100"/></proof>
  </goal>
  <goal name="enum&#39;vc.68" expl="assertion" proved="true">
  <transf name="split_vc" proved="true" >
   <goal name="enum&#39;vc.68.0" expl="assertion" proved="true">
   <proof prover="5"><result status="valid" time="0.14" steps="385"/></proof>
   </goal>
   <goal name="enum&#39;vc.68.1" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.09" steps="351"/></proof>
   </goal>
   <goal name="enum&#39;vc.68.2" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.09" steps="341"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.69" expl="assertion" proved="true">
  <transf name="split_all_full" proved="true" >
   <goal name="enum&#39;vc.69.0" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.06" steps="116"/></proof>
   </goal>
   <goal name="enum&#39;vc.69.1" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.18" steps="444"/></proof>
   </goal>
   <goal name="enum&#39;vc.69.2" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.06" steps="114"/></proof>
   </goal>
   <goal name="enum&#39;vc.69.3" expl="VC for enum" proved="true">
   <proof prover="5"><result status="valid" time="0.56" steps="1431"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.70" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.09" steps="340"/></proof>
  </goal>
  <goal name="enum&#39;vc.71" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.09" steps="343"/></proof>
  </goal>
  <goal name="enum&#39;vc.72" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.43" steps="1068"/></proof>
  </goal>
  <goal name="enum&#39;vc.73" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.28" steps="768"/></proof>
  </goal>
  <goal name="enum&#39;vc.74" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.29" steps="790"/></proof>
  </goal>
  <goal name="enum&#39;vc.75" expl="out of loop bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.03" steps="77"/></proof>
  </goal>
  <goal name="enum&#39;vc.76" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.19" steps="765"/></proof>
  </goal>
  <goal name="enum&#39;vc.77" expl="VC for enum" proved="true">
  <proof prover="5"><result status="valid" time="0.02" steps="56"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
