<?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="CVC5" version="1.0.5" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="1" name="Z3" version="4.12.2" timelimit="5" steplimit="0" memlimit="1000"/>
<prover id="5" name="Alt-Ergo" version="2.3.3" 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.010000" 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.010000" steps="15"/></proof>
  </goal>
  <goal name="colo_0.1" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="17"/></proof>
  </goal>
  <goal name="colo_0.2" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="13565"/></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.010000" steps="12"/></proof>
  </goal>
  <goal name="colo_1.1" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="48"/></proof>
  </goal>
  <goal name="colo_1.2" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="36"/></proof>
  </goal>
  <goal name="colo_1.3" proved="true">
  <proof prover="0"><result status="valid" time="0.080000" steps="13497"/></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.010000" steps="13"/></proof>
  </goal>
  <goal name="colo_2.1" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="13"/></proof>
  </goal>
  <goal name="colo_2.2" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="48"/></proof>
  </goal>
  <goal name="colo_2.3" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="27"/></proof>
  </goal>
  <goal name="colo_2.4" proved="true">
  <proof prover="5"><result status="valid" time="0.110000" steps="922"/></proof>
  </goal>
  <goal name="colo_2.5" proved="true">
  <proof prover="0"><result status="valid" time="0.090000" steps="13806"/></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.010000" steps="16"/></proof>
  </goal>
  <goal name="colo_3.1" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="28"/></proof>
  </goal>
  <goal name="colo_3.2" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="16"/></proof>
  </goal>
  <goal name="colo_3.3" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="17"/></proof>
  </goal>
  <goal name="colo_3.4" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="18"/></proof>
  </goal>
  <goal name="colo_3.5" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="17"/></proof>
  </goal>
  <goal name="colo_3.6" proved="true">
  <proof prover="5"><result status="valid" time="0.120000" steps="795"/></proof>
  </goal>
  <goal name="colo_3.7" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="33"/></proof>
  </goal>
  <goal name="colo_3.8" proved="true">
  <proof prover="5"><result status="valid" time="0.170000" steps="1306"/></proof>
  </goal>
  <goal name="colo_3.9" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="60"/></proof>
  </goal>
  <goal name="colo_3.10" proved="true">
  <proof prover="5"><result status="valid" time="0.300000" steps="1409"/></proof>
  </goal>
  <goal name="colo_3.11" proved="true">
  <proof prover="0"><result status="valid" time="0.476145" steps="55662"/></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.010000" 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.020000" 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.020000" 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.080000" 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.120000" steps="750"/></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.480000" steps="2523"/></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.020000" steps="28"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.1" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="7"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.2" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="22"/></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.020000" steps="17"/></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.040000" steps="166"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="first_black_tile&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="54"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="46"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.6" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.040000" steps="130"/></proof>
  </goal>
  <goal name="first_black_tile&#39;vc.7" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" steps="78"/></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.010000" steps="2"/></proof>
  </goal>
  <goal name="addleft&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="18"/></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.020000" 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="1"><result status="valid" time="0.050000" steps="195496"/></proof>
    </goal>
   </transf>
   </goal>
  </transf>
  </goal>
 </transf>
 </goal>
 <goal name="mapaddleft_fb" proved="true">
 <proof prover="5"><result status="valid" time="0.020000" 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.010000" steps="30"/></proof>
  </goal>
  <goal name="bij_image&#39;vc.1" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" 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.010000" steps="4"/></proof>
  </goal>
  <goal name="bij_cardinal&#39;vc.1" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="6"/></proof>
  </goal>
  <goal name="bij_cardinal&#39;vc.2" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="27"/></proof>
  </goal>
  <goal name="bij_cardinal&#39;vc.3" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="8"/></proof>
  </goal>
 </transf>
 </goal>
 <goal name="ext" proved="true">
 <proof prover="5"><result status="valid" time="0.010000" steps="4"/></proof>
 </goal>
 <goal name="app_eq" proved="true">
 <proof prover="5"><result status="valid" time="0.010000" 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.060000" steps="142"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.1" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="4"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.2" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="8"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.3" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="12"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.4" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="12"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.5" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.100000" steps="15755"/></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.000000" steps="3195"/></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.020000" steps="20"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="addleft_result&#39;vc.7" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.040000" steps="98"/></proof>
  </goal>
  <goal name="addleft_result&#39;vc.8" expl="postcondition" proved="true">
  <proof prover="0"><result status="valid" time="0.045869" steps="15887"/></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.250000" steps="464"/></proof>
  </goal>
  <goal name="addleft_bijective&#39;vc.1" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.070000" steps="327"/></proof>
  </goal>
  <goal name="addleft_bijective&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" 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.010000" steps="2"/></proof>
  </goal>
  <goal name="mapaddleft_card&#39;vc.1" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="4"/></proof>
  </goal>
  <goal name="mapaddleft_card&#39;vc.2" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="8"/></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.010000" steps="4"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.1" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="3.238663" steps="374078"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.2" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="12"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.3" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="18"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.4" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.120000" steps="259"/></proof>
  </goal>
  <goal name="addleft_valid&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" 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.060000" 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.030000" 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.020000" steps="40"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.1" expl="variant decrease" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="5"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.2" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="31"/></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.010000" steps="4"/></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.020000" steps="10"/></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.020000" steps="41"/></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.020000" steps="9"/></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.010000" steps="10"/></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.020000" steps="10"/></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.020000" steps="7"/></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.010000" steps="12"/></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.010000" steps="9"/></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.010000" steps="9"/></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.010000" steps="12"/></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.030000" steps="7"/></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.010000" steps="10"/></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.010000" steps="56"/></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.010000" steps="57"/></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.020000" steps="54"/></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.020000" steps="8"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="disjoint_union&#39;vc.4" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" steps="2"/></proof>
  </goal>
  <goal name="disjoint_union&#39;vc.5" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.050000" steps="96"/></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.010000" steps="0"/></proof>
  </goal>
  <goal name="enum&#39;vc.1" expl="array creation size" proved="true">
  <proof prover="5"><result status="valid" time="0.010000" 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.010000" 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.010000" steps="10"/></proof>
  </goal>
  <goal name="enum&#39;vc.4" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" 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.010000" 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.010000" steps="22"/></proof>
  </goal>
  <goal name="enum&#39;vc.7" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.220000" 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.010000" 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.010000" steps="34"/></proof>
  </goal>
  <goal name="enum&#39;vc.10" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.299861" steps="31841"/></proof>
  </goal>
  <goal name="enum&#39;vc.11" expl="index in array bounds" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" 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.020000" steps="46"/></proof>
  </goal>
  <goal name="enum&#39;vc.13" expl="assertion" proved="true">
  <proof prover="0"><result status="valid" time="0.190000" steps="26915"/></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.020000" 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.020000" 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.100000" 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.100000" 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.210000" steps="1045"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.15" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.700000" steps="1927"/></proof>
  </goal>
  <goal name="enum&#39;vc.16" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.040000" steps="67"/></proof>
  </goal>
  <goal name="enum&#39;vc.17" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.120000" 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.020000" 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.480000" 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.460000" 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.450000" 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.040000" 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="0"><result status="valid" time="0.200000" steps="40074"/></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.030000" 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.020000" 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.020000" 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.020000" steps="71"/></proof>
  </goal>
  <goal name="enum&#39;vc.22" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" steps="75"/></proof>
  </goal>
  <goal name="enum&#39;vc.23" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" 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.020000" 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.030000" steps="71"/></proof>
  </goal>
  <goal name="enum&#39;vc.26" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.070000" steps="262"/></proof>
  </goal>
  <goal name="enum&#39;vc.27" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.070000" 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.050000" 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.050000" 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.310000" 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.050000" 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.140000" 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.050000" 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.120000" steps="311"/></proof>
  </goal>
  <goal name="enum&#39;vc.30" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.060000" steps="387"/></proof>
  </goal>
  <goal name="enum&#39;vc.31" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.120000" steps="305"/></proof>
  </goal>
  <goal name="enum&#39;vc.32" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="1.230000" steps="2209"/></proof>
  </goal>
  <goal name="enum&#39;vc.33" expl="loop invariant init" proved="true">
  <proof prover="5"><result status="valid" time="0.050000" 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.030000" 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.030000" 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.030000" 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.030000" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.38" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.050000" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.39" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.40" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" 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.030000" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.42" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.050000" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.43" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" 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.030000" steps="94"/></proof>
  </goal>
  <goal name="enum&#39;vc.45" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" 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.040000" steps="96"/></proof>
  </goal>
  <goal name="enum&#39;vc.47" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.050000" 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.060000" 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.360000" 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.720000" 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.110000" 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.190000" 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.700000" 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.740000" 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.620000" 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.050000" 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.180000" 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.040000" 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.030000" steps="96"/></proof>
  </goal>
  <goal name="enum&#39;vc.50" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.050000" 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.040000" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.52" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.080000" steps="331"/></proof>
  </goal>
  <goal name="enum&#39;vc.53" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.090000" steps="336"/></proof>
  </goal>
  <goal name="enum&#39;vc.54" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.180000" steps="394"/></proof>
  </goal>
  <goal name="enum&#39;vc.55" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.160000" steps="487"/></proof>
  </goal>
  <goal name="enum&#39;vc.56" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.140000" steps="386"/></proof>
  </goal>
  <goal name="enum&#39;vc.57" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.340000" steps="1071"/></proof>
  </goal>
  <goal name="enum&#39;vc.58" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.060000" steps="106"/></proof>
  </goal>
  <goal name="enum&#39;vc.59" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.030000" steps="84"/></proof>
  </goal>
  <goal name="enum&#39;vc.60" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.040000" steps="92"/></proof>
  </goal>
  <goal name="enum&#39;vc.61" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.320000" 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.340000" 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.030000" 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.030000" 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.030000" steps="98"/></proof>
  </goal>
  <goal name="enum&#39;vc.66" expl="precondition" proved="true">
  <proof prover="5"><result status="valid" time="0.060000" 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.040000" 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.140000" 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.090000" 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.090000" 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.060000" 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.180000" 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.060000" 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.560000" steps="1431"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="enum&#39;vc.70" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.090000" steps="340"/></proof>
  </goal>
  <goal name="enum&#39;vc.71" expl="assertion" proved="true">
  <proof prover="5"><result status="valid" time="0.090000" steps="343"/></proof>
  </goal>
  <goal name="enum&#39;vc.72" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.430000" steps="1068"/></proof>
  </goal>
  <goal name="enum&#39;vc.73" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.280000" steps="768"/></proof>
  </goal>
  <goal name="enum&#39;vc.74" expl="loop invariant preservation" proved="true">
  <proof prover="5"><result status="valid" time="0.290000" 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.030000" steps="77"/></proof>
  </goal>
  <goal name="enum&#39;vc.76" expl="postcondition" proved="true">
  <proof prover="5"><result status="valid" time="0.190000" steps="765"/></proof>
  </goal>
  <goal name="enum&#39;vc.77" expl="VC for enum" proved="true">
  <proof prover="5"><result status="valid" time="0.020000" steps="56"/></proof>
  </goal>
 </transf>
 </goal>
</theory>
</file>
</why3session>
