From ce7bf93b1054c286eae10585a25214ddafe7a97a Mon Sep 17 00:00:00 2001
From: Jean-Christophe Filliatre <Jean-Christophe.Filliatre@lri.fr>
Date: Fri, 19 May 2017 11:20:02 +0200
Subject: [PATCH] updated proof sessions

---
 examples/TODO                                 |    3 -
 .../unraveling_a_card_trick/why3session.xml   |  245 +--
 .../unraveling_a_card_trick/why3shapes.gz     |  Bin 3608 -> 966 bytes
 examples/vacid_0_build_maze/why3session.xml   |  400 ++++-
 examples/vacid_0_build_maze/why3shapes.gz     |  Bin 2423 -> 990 bytes
 ...0_red_black_trees_RedBlackTree_VC_add_1.v} |   47 +-
 .../vacid_0_red_black_trees/why3session.xml   | 1549 ++---------------
 .../vacid_0_red_black_trees/why3shapes.gz     |  Bin 7578 -> 3416 bytes
 ...sparse_array_2_SparseArray_permutation_1.v |  108 +-
 examples/vstte12_bfs/why3session.xml          |  295 ++--
 examples/vstte12_bfs/why3shapes.gz            |  Bin 4366 -> 3082 bytes
 11 files changed, 657 insertions(+), 1990 deletions(-)
 rename examples/vacid_0_red_black_trees/{vacid_0_red_black_trees_WP_RedBlackTree_WP_parameter_add_1.v => vacid_0_red_black_trees_RedBlackTree_VC_add_1.v} (82%)

diff --git a/examples/TODO b/examples/TODO
index c3ef50d464..b17865180f 100644
--- a/examples/TODO
+++ b/examples/TODO
@@ -27,9 +27,6 @@ sum_of_digits.mlw
 topological_sorting.mlw
 tortoise_and_hare.mlw
 tree_height.mlw
-unraveling_a_card_trick.mlw
-vacid_0_build_maze.mlw
-vacid_0_red_black_trees.mlw
 vacid_0_sparse_array.mlw
 verifythis_2016_tree_traversal.mlw
 verifythis_fm2012_LRS.mlw
diff --git a/examples/unraveling_a_card_trick/why3session.xml b/examples/unraveling_a_card_trick/why3session.xml
index 25010a8657..9f6f2315ad 100644
--- a/examples/unraveling_a_card_trick/why3session.xml
+++ b/examples/unraveling_a_card_trick/why3session.xml
@@ -2,257 +2,52 @@
 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
 "http://why3.lri.fr/why3session.dtd">
 <why3session shape_version="4">
-<prover id="0" name="CVC4" version="1.4" timelimit="6" steplimit="0" memlimit="1000"/>
-<prover id="2" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="0" memlimit="1000"/>
-<file name="../unraveling_a_card_trick.mlw">
-<theory name="GilbreathCardTrickPure" sum="793897324c6b367f6f73306cc0d0d0b5">
+<prover id="0" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="1" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
+<file name="../unraveling_a_card_trick.mlw" expanded="true">
+<theory name="GilbreathCardTrickPure" sum="4f80ec63b0cc2a73fdbb8b3884c24972" expanded="true">
  <goal name="shuffle_nil_nil_nil">
- <proof prover="2"><result status="valid" time="0.02" steps="6"/></proof>
+ <proof prover="1"><result status="valid" time="0.00" steps="4"/></proof>
  </goal>
  <goal name="shuffle_sym">
  <transf name="induction_pr">
   <goal name="shuffle_sym.1" expl="1.">
-  <proof prover="2" timelimit="6"><result status="valid" time="0.01" steps="6"/></proof>
+  <proof prover="1"><result status="valid" time="0.00" steps="7"/></proof>
   </goal>
   <goal name="shuffle_sym.2" expl="2.">
-  <proof prover="2" timelimit="6"><result status="valid" time="0.02" steps="6"/></proof>
+  <proof prover="1"><result status="valid" time="0.01" steps="7"/></proof>
   </goal>
   <goal name="shuffle_sym.3" expl="3.">
-  <proof prover="2" timelimit="6"><result status="valid" time="0.02" steps="17"/></proof>
+  <proof prover="1"><result status="valid" time="0.01" steps="18"/></proof>
   </goal>
   <goal name="shuffle_sym.4" expl="4.">
-  <proof prover="2" timelimit="6"><result status="valid" time="0.01" steps="17"/></proof>
+  <proof prover="1"><result status="valid" time="0.01" steps="18"/></proof>
   </goal>
  </transf>
  </goal>
- <goal name="shuffle_length">
- <transf name="induction_pr">
+ <goal name="shuffle_length" expanded="true">
+ <transf name="induction_pr" expanded="true">
   <goal name="shuffle_length.1" expl="1.">
-  <proof prover="0"><result status="valid" time="0.01"/></proof>
-  <proof prover="2" timelimit="6"><result status="valid" time="0.02" steps="9"/></proof>
+  <proof prover="1"><result status="valid" time="0.01" steps="10"/></proof>
   </goal>
   <goal name="shuffle_length.2" expl="2.">
-  <proof prover="0"><result status="valid" time="0.02"/></proof>
-  <proof prover="2" timelimit="6"><result status="valid" time="0.02" steps="9"/></proof>
+  <proof prover="1"><result status="valid" time="0.01" steps="10"/></proof>
   </goal>
-  <goal name="shuffle_length.3" expl="3.">
+  <goal name="shuffle_length.3" expl="3." expanded="true">
   <proof prover="0"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="shuffle_length.4" expl="4.">
+  <goal name="shuffle_length.4" expl="4." expanded="true">
   <proof prover="0"><result status="valid" time="0.02"/></proof>
   </goal>
  </transf>
  </goal>
 </theory>
-<theory name="GilbreathCardTrick" sum="63af0bbbdfe6007741b0440e67670a8b">
- <goal name="WP_parameter shuffle" expl="VC for shuffle">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter shuffle.1" expl="1. loop invariant init">
-  <proof prover="2"><result status="valid" time="0.01" steps="9"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.2" expl="2. loop invariant init">
-  <proof prover="2"><result status="valid" time="0.01" steps="9"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.3" expl="3. loop invariant init">
-  <proof prover="2"><result status="valid" time="0.01" steps="6"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.4" expl="4. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="14"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.5" expl="5. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="17"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.6" expl="6. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="21"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.7" expl="7. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="21"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.8" expl="8. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="21"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.9" expl="9. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.02" steps="21"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.10" expl="10. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="15"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.11" expl="11. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="18"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.12" expl="12. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.13" expl="13. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.14" expl="14. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.00" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.15" expl="15. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.01" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.16" expl="16. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="15"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.17" expl="17. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="18"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.18" expl="18. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.19" expl="19. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.20" expl="20. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.21" expl="21. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.02" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.22" expl="22. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="13"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.23" expl="23. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="16"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.24" expl="24. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="20"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.25" expl="25. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.03" steps="62"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.26" expl="26. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.05" steps="128"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.27" expl="27. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.01" steps="26"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.28" expl="28. postcondition">
-  <proof prover="2"><result status="valid" time="0.05" steps="93"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.29" expl="29. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="13"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.30" expl="30. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="16"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.31" expl="31. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.03" steps="62"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.32" expl="32. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="20"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.33" expl="33. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.16" steps="126"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.34" expl="34. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.02" steps="26"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.35" expl="35. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="14"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.36" expl="36. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="17"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.37" expl="37. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.03" steps="63"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.38" expl="38. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="21"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.39" expl="39. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.07" steps="131"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.40" expl="40. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.01" steps="26"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.41" expl="41. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="14"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.42" expl="42. precondition">
-  <proof prover="2"><result status="valid" time="0.01" steps="17"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.43" expl="43. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="21"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.44" expl="44. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.03" steps="63"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.45" expl="45. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.16" steps="133"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.46" expl="46. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.02" steps="26"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.47" expl="47. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="11"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.48" expl="48. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="15"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.49" expl="49. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.02" steps="19"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.50" expl="50. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="19"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.51" expl="51. loop invariant preservation">
-  <proof prover="2"><result status="valid" time="0.01" steps="19"/></proof>
-  </goal>
-  <goal name="WP_parameter shuffle.52" expl="52. loop variant decrease">
-  <proof prover="2"><result status="valid" time="0.02" steps="19"/></proof>
-  </goal>
- </transf>
+<theory name="GilbreathCardTrick" sum="c022cadfb1b8213da58f67c08242580d">
+ <goal name="VC shuffle" expl="VC for shuffle">
+ <proof prover="1"><result status="valid" time="2.17" steps="3619"/></proof>
  </goal>
- <goal name="WP_parameter card_trick" expl="VC for card_trick">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter card_trick.1" expl="1. assertion">
-  <proof prover="2"><result status="valid" time="0.01" steps="14"/></proof>
-  </goal>
-  <goal name="WP_parameter card_trick.2" expl="2. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter card_trick.2.1" expl="1. VC for card_trick">
-   <proof prover="2"><result status="valid" time="0.02" steps="27"/></proof>
-   </goal>
-   <goal name="WP_parameter card_trick.2.2" expl="2. VC for card_trick">
-   <proof prover="0" timelimit="5"><result status="valid" time="0.04"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter card_trick.3" expl="3. loop invariant init">
-  <proof prover="2"><result status="valid" time="0.02" steps="17"/></proof>
-  </goal>
-  <goal name="WP_parameter card_trick.4" expl="4. precondition">
-  <proof prover="2"><result status="valid" time="0.02" steps="19"/></proof>
-  </goal>
-  <goal name="WP_parameter card_trick.5" expl="5. loop invariant preservation">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter card_trick.5.1" expl="1. VC for card_trick">
-   <proof prover="2"><result status="valid" time="0.02" steps="33"/></proof>
-   </goal>
-   <goal name="WP_parameter card_trick.5.2" expl="2. VC for card_trick">
-   <proof prover="2"><result status="valid" time="0.02" steps="20"/></proof>
-   </goal>
-   <goal name="WP_parameter card_trick.5.3" expl="3. VC for card_trick">
-   <proof prover="2"><result status="valid" time="0.02" steps="21"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter card_trick.6" expl="6. assertion">
-  <proof prover="2"><result status="valid" time="0.02" steps="11"/></proof>
-  </goal>
-  <goal name="WP_parameter card_trick.7" expl="7. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter card_trick.7.1" expl="1. VC for card_trick">
-   <proof prover="2"><result status="valid" time="0.02" steps="30"/></proof>
-   </goal>
-   <goal name="WP_parameter card_trick.7.2" expl="2. VC for card_trick">
-   <proof prover="2"><result status="valid" time="0.28" steps="195"/></proof>
-   </goal>
-  </transf>
-  </goal>
- </transf>
+ <goal name="VC card_trick" expl="VC for card_trick">
+ <proof prover="1"><result status="valid" time="0.16" steps="552"/></proof>
  </goal>
 </theory>
 </file>
diff --git a/examples/unraveling_a_card_trick/why3shapes.gz b/examples/unraveling_a_card_trick/why3shapes.gz
index db52341a3970e7bd720a4595ac70fd99c6abe429..0ed422201763218670fb0a39413608d59c126fcc 100644
GIT binary patch
literal 966
zcmb2|=3oGW|9iu|`=!l!_Wch3ac4n;M`sno$;6EZ81^lhp0uuU$wVpTb9x5fw*CD%
z_4uVd>C)1^{Kq_G>Qs*QFF6({WagH=Qr2y~Xp4X+_gg8aBHtUgKVRQ2;eW8sZr-VU
zaZ}d21sy#(hk1pBjWkZ`Smw7ZkqdP`n`QGQdKyc_+aA$P4+ASFoS5N$)#6yhlWP)w
zY(E-~vpit0uIW6!|NH!P&)Rt7k|nq8NekV2IAcoJMQ?fKg(d>6VSbiu7gwHmyzS*m
zQ<>^rGq;_n^y>21w&Y98v56lVT^CH@-C!|eS=5!H2JYW~eiiMLtDA7qR5w+*n`wPp
z%*&{&X%_;Mx5zE_ZL;k(>dV~U?8en6xL0B6$>y?SnaejM^2{_Tv%cXuMRmh`=`~zl
z)sM7{<eJKtOexb$S!Z(n*ea2nw&%~;tGV>+WA<HJqq9I~+EF%{7Ud5y7S1ADMOPjO
z^l-RY@jl`5kA%%S?^d}S_gHZy^2m;>ZPu<UUo7owT5!>E75m?R*)v}`@G(quonrRX
zpY!RKFKv@PU+~!eGJFc_)T4(@_dIl*+N#%mJo{Lo-wMadhm{`=eF$-IoYZZ@tNv8Z
z_F3%J|MoJ$UU>%%*6#UujXh<~p6i*<T-cnrcCMfQ{o~fV={Gjczn=TUc+2yI!!IWt
znw$6VTY&#x&Ru)=UAyL!wr<nGEcMAZxt^)>&X_rS&J2EIOMN!8h8*UMP5+sGTb$qX
zvbrOG-zD2$lhbcUwP(sHh%<N0+5PH+%x><&RmZX=F3sAKeL^(&xlH)g%g?87Ie#~?
zZ2HPYJ9mFs##S5rYxRt{tu{~jBF$!O|Ks<rr0xDm8K=ViCuI*^F#E4tej>lpsb;#h
zkFNO~?ab>MYIkO;mZ!Dup7Kb#d}++|J2R!8wpee@t8_5<UHw~(@A$?go0d<xKl4<6
zw&{kn-BH0Yum2s+`hGd7?a!HCFN1%Y@T&Pwx-%vEb4sy5>X*3(pNKs&zUMmq>dXo2
zId{KreXZ`4@bYupP7RgfW7!{+YNML3=u|CtobvEp?(LeLTipMjop--)y8iR)--Kqd
zGXDKqEc_=a{>}HpzgiWRMenOqyx`?|BKnQ-%dk~k_U*r~h^K2k{&Ssa&Bf;S)_E`5
z4~6VMeN^n*-3g~y%(&wjx)*%O3V7Du^lHQBY=%!7nyTCFcKYlpcbm@ldVRmmjw3|{
zol_5fwa~u);QiyIo*y@AIeOi!ORhiR|1>#X|D|SLxMkvdR&%$Q!;<3X5;>%f&-i$D
m%D=KRooA94WZ%EOjWhS<{nQ6JIoodiWiAqY(6X4HfdK&V$ML%W

literal 3608
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
LB-hkTWMBXQ<*EkD

diff --git a/examples/vacid_0_build_maze/why3session.xml b/examples/vacid_0_build_maze/why3session.xml
index 2209f87eda..9074817888 100644
--- a/examples/vacid_0_build_maze/why3session.xml
+++ b/examples/vacid_0_build_maze/why3session.xml
@@ -2,10 +2,8 @@
 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
 "http://why3.lri.fr/why3session.dtd">
 <why3session shape_version="4">
-<prover id="0" name="CVC3" version="2.4.1" timelimit="30" steplimit="0" memlimit="1000"/>
-<prover id="3" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="4" name="Alt-Ergo" version="1.00.prv" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="5" name="Z3" version="4.3.2" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="0" name="CVC3" version="2.4.1" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="1" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
 <prover id="6" name="Alt-Ergo" version="0.99.1" timelimit="30" steplimit="0" memlimit="1000"/>
 <file name="../vacid_0_build_maze.mlw" expanded="true">
 <theory name="UnionFind_pure" sum="d41d8cd98f00b204e9800998ecf8427e" expanded="true">
@@ -16,81 +14,339 @@
 </theory>
 <theory name="Graph_sig" sum="d41d8cd98f00b204e9800998ecf8427e" expanded="true">
 </theory>
-<theory name="BuildMaze" sum="6bb2c1fde6b6517a4e09739fe5a829d8" expanded="true">
- <goal name="Ineq1">
- <transf name="split_goal_wp">
+<theory name="BuildMaze" sum="cff1d04bbd1a5e288e2360fd8bfbcf9f" expanded="true">
+ <goal name="Ineq1" expanded="true">
+ <transf name="split_goal_wp" expanded="true">
   <goal name="Ineq1.1" expl="1.">
-  <proof prover="6"><result status="valid" time="0.00" steps="5"/></proof>
+  <proof prover="1"><result status="valid" time="0.00" steps="6"/></proof>
+  <proof prover="6" obsolete="true"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
-  <goal name="Ineq1.2" expl="2.">
+  <goal name="Ineq1.2" expl="2." expanded="true">
   <proof prover="0"><result status="valid" time="0.14"/></proof>
+  <metas
+   expanded="true">
+   <ts_pos name="real" arity="0" id="real" ip_theory="BuiltIn">
+    <ip_library name="why3"/>
+    <ip_library name="BuiltIn"/>
+    <ip_qualid name="real"/>
+   </ts_pos>
+   <ts_pos name="bool" arity="0" id="bool" ip_theory="Bool">
+    <ip_library name="why3"/>
+    <ip_library name="Bool"/>
+    <ip_qualid name="bool"/>
+   </ts_pos>
+   <ts_pos name="tuple0" arity="0" id="tuple0" ip_theory="Tuple0">
+    <ip_library name="why3"/>
+    <ip_library name="Tuple0"/>
+    <ip_qualid name="tuple0"/>
+   </ts_pos>
+   <ts_pos name="unit" arity="0" id="unit" ip_theory="Unit">
+    <ip_library name="why3"/>
+    <ip_library name="Unit"/>
+    <ip_qualid name="unit"/>
+   </ts_pos>
+   <ts_pos name="ref" arity="1" id="ref" ip_theory="Ref">
+    <ip_library name="ref"/>
+    <ip_qualid name="ref"/>
+   </ts_pos>
+   <ts_pos name="graph" arity="0" id="graph" ip_theory="Graph_sig">
+    <ip_qualid name="graph"/>
+   </ts_pos>
+   <ls_pos name="infix =" id="infix =" ip_theory="BuiltIn">
+    <ip_library name="why3"/>
+    <ip_library name="BuiltIn"/>
+    <ip_qualid name="infix ="/>
+   </ls_pos>
+   <ls_pos name="one" id="one" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="one"/>
+   </ls_pos>
+   <ls_pos name="prefix -" id="prefix -" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="prefix -"/>
+   </ls_pos>
+   <ls_pos name="infix +" id="infix +" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="infix +"/>
+   </ls_pos>
+   <ls_pos name="infix *" id="infix *" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="infix *"/>
+   </ls_pos>
+   <ls_pos name="infix &lt;" id="infix &lt;" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="infix &lt;"/>
+   </ls_pos>
+   <ls_pos name="infix -" id="infix -" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="infix -"/>
+   </ls_pos>
+   <ls_pos name="infix &gt;" id="infix &gt;" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="infix &gt;"/>
+   </ls_pos>
+   <ls_pos name="infix &gt;=" id="infix &gt;=" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="infix &gt;="/>
+   </ls_pos>
+   <ls_pos name="repr" id="repr" ip_theory="UnionFind_pure">
+    <ip_qualid name="repr"/>
+   </ls_pos>
+   <ls_pos name="size" id="size" ip_theory="UnionFind_pure">
+    <ip_qualid name="size"/>
+   </ls_pos>
+   <ls_pos name="num" id="num" ip_theory="UnionFind_pure">
+    <ip_qualid name="num"/>
+   </ls_pos>
+   <ls_pos name="same" id="same" ip_theory="UnionFind_pure">
+    <ip_qualid name="same"/>
+   </ls_pos>
+   <ls_pos name="same_reprs" id="same_reprs" ip_theory="UnionFind_pure">
+    <ip_qualid name="same_reprs"/>
+   </ls_pos>
+   <ls_pos name="state" id="state" ip_theory="UnionFind_sig">
+    <ip_qualid name="state"/>
+   </ls_pos>
+   <ls_pos name="prefix !" id="prefix !" ip_theory="Ref">
+    <ip_library name="ref"/>
+    <ip_qualid name="prefix !"/>
+   </ls_pos>
+   <ls_pos name="path" id="path" ip_theory="Graph_sig">
+    <ip_qualid name="path"/>
+   </ls_pos>
+   <pr_pos name="Assoc" id="Assoc" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Assoc"/>
+   </pr_pos>
+   <pr_pos name="Unit_def_l" id="Unit_def_l" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Unit_def_l"/>
+   </pr_pos>
+   <pr_pos name="Unit_def_r" id="Unit_def_r" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Unit_def_r"/>
+   </pr_pos>
+   <pr_pos name="Inv_def_l" id="Inv_def_l" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Inv_def_l"/>
+   </pr_pos>
+   <pr_pos name="Inv_def_r" id="Inv_def_r" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Inv_def_r"/>
+   </pr_pos>
+   <pr_pos name="Comm" id="Comm" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Comm"/>
+   </pr_pos>
+   <pr_pos name="Assoc" id="Assoc1" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="MulAssoc"/>
+    <ip_qualid name="Assoc"/>
+   </pr_pos>
+   <pr_pos name="Mul_distr_l" id="Mul_distr_l" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Mul_distr_l"/>
+   </pr_pos>
+   <pr_pos name="Mul_distr_r" id="Mul_distr_r" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Mul_distr_r"/>
+   </pr_pos>
+   <pr_pos name="Comm" id="Comm1" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="MulComm"/>
+    <ip_qualid name="Comm"/>
+   </pr_pos>
+   <pr_pos name="Unitary" id="Unitary" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Unitary"/>
+   </pr_pos>
+   <pr_pos name="NonTrivialRing" id="NonTrivialRing" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="NonTrivialRing"/>
+   </pr_pos>
+   <pr_pos name="Refl" id="Refl" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Refl"/>
+   </pr_pos>
+   <pr_pos name="Trans" id="Trans" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Trans"/>
+   </pr_pos>
+   <pr_pos name="Antisymm" id="Antisymm" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Antisymm"/>
+   </pr_pos>
+   <pr_pos name="Total" id="Total" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="Total"/>
+   </pr_pos>
+   <pr_pos name="ZeroLessOne" id="ZeroLessOne" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="ZeroLessOne"/>
+   </pr_pos>
+   <pr_pos name="CompatOrderAdd" id="CompatOrderAdd" ip_theory="Int">
+    <ip_library name="int"/>
+    <ip_qualid name="CompatOrderAdd"/>
+   </pr_pos>
+   <pr_pos name="Repr_function_1" id="Repr_function_1"
+    ip_theory="UnionFind_pure">
+    <ip_qualid name="Repr_function_1"/>
+   </pr_pos>
+   <pr_pos name="Repr_function_2" id="Repr_function_2"
+    ip_theory="UnionFind_pure">
+    <ip_qualid name="Repr_function_2"/>
+   </pr_pos>
+   <pr_pos name="OneClass" id="OneClass" ip_theory="UnionFind_pure">
+    <ip_qualid name="OneClass"/>
+   </pr_pos>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix ="/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="one"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="prefix -"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix +"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix *"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix &lt;"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix -"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix &gt;"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="infix &gt;="/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="repr"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="size"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="num"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="same"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="same_reprs"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="state"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="prefix !"/>
+   </meta>
+   <meta name="remove_logic">
+    <meta_arg_ls id="path"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Assoc"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Unit_def_l"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Unit_def_r"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Inv_def_l"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Inv_def_r"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Comm"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Assoc1"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Mul_distr_l"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Mul_distr_r"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Comm1"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Unitary"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="NonTrivialRing"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Refl"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Trans"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Antisymm"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Total"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="ZeroLessOne"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="CompatOrderAdd"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Repr_function_1"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="Repr_function_2"/>
+   </meta>
+   <meta name="remove_prop">
+    <meta_arg_pr id="OneClass"/>
+   </meta>
+   <meta name="remove_type">
+    <meta_arg_ts id="real"/>
+   </meta>
+   <meta name="remove_type">
+    <meta_arg_ts id="bool"/>
+   </meta>
+   <meta name="remove_type">
+    <meta_arg_ts id="tuple0"/>
+   </meta>
+   <meta name="remove_type">
+    <meta_arg_ts id="unit"/>
+   </meta>
+   <meta name="remove_type">
+    <meta_arg_ts id="ref"/>
+   </meta>
+   <meta name="remove_type">
+    <meta_arg_ts id="graph"/>
+   </meta>
+   <goal name="Ineq1.2" expl="2." expanded="true">
+   <transf name="eliminate_builtin" expanded="true">
+    <goal name="Ineq1.2.1" expl="1." expanded="true">
+    <proof prover="0"><result status="valid" time="0.14"/></proof>
+    </goal>
+   </transf>
+   </goal>
+  </metas>
   </goal>
  </transf>
  </goal>
- <goal name="WP_parameter add_edge_and_union" expl="VC for add_edge_and_union">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter add_edge_and_union.1" expl="1. precondition">
-  <proof prover="6"><result status="valid" time="0.01" steps="6"/></proof>
-  </goal>
-  <goal name="WP_parameter add_edge_and_union.2" expl="2. precondition">
-  <proof prover="6"><result status="valid" time="0.00" steps="7"/></proof>
-  </goal>
-  <goal name="WP_parameter add_edge_and_union.3" expl="3. postcondition">
-  <proof prover="6"><result status="valid" time="0.29" steps="615"/></proof>
-  </goal>
- </transf>
+ <goal name="VC add_edge_and_union" expl="VC for add_edge_and_union" expanded="true">
+ <proof prover="1"><result status="valid" time="0.12" steps="506"/></proof>
  </goal>
- <goal name="WP_parameter build_maze" expl="VC for build_maze" expanded="true">
- <transf name="split_goal_wp" expanded="true">
-  <goal name="WP_parameter build_maze.1" expl="1. precondition">
-  <proof prover="6"><result status="valid" time="0.00" steps="2"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.2" expl="2. assertion">
-  <proof prover="6"><result status="valid" time="0.01" steps="17"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.3" expl="3. loop invariant init">
-  <proof prover="6"><result status="valid" time="0.02" steps="24"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.4" expl="4. precondition">
-  <proof prover="6"><result status="valid" time="0.01" steps="9"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.5" expl="5. precondition">
-  <proof prover="6"><result status="valid" time="0.00" steps="12"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.6" expl="6. precondition">
-  <proof prover="6"><result status="valid" time="0.01" steps="14"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.7" expl="7. assertion">
-  <proof prover="6"><result status="valid" time="0.01" steps="19"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.8" expl="8. assertion">
-  <proof prover="5" timelimit="30"><result status="valid" time="0.01"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.9" expl="9. precondition">
-  <proof prover="6"><result status="valid" time="0.13" steps="50"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.10" expl="10. precondition">
-  <proof prover="6"><result status="valid" time="0.06" steps="44"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.11" expl="11. precondition">
-  <proof prover="4"><result status="valid" time="0.24" steps="381"/></proof>
-  <proof prover="5"><result status="valid" time="0.02"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.12" expl="12. loop invariant preservation">
-  <proof prover="3"><result status="valid" time="0.02"/></proof>
-  <proof prover="5"><result status="valid" time="0.02"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.13" expl="13. loop invariant preservation">
-  <proof prover="3"><result status="valid" time="2.47"/></proof>
-  <proof prover="4"><result status="valid" time="0.18" steps="175"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.14" expl="14. loop invariant preservation">
-  <proof prover="6"><result status="valid" time="0.02" steps="33"/></proof>
-  </goal>
-  <goal name="WP_parameter build_maze.15" expl="15. postcondition">
-  <proof prover="6"><result status="valid" time="0.03" steps="21"/></proof>
-  </goal>
- </transf>
+ <goal name="VC build_maze" expl="VC for build_maze" expanded="true">
+ <proof prover="1"><result status="valid" time="0.35" steps="697"/></proof>
  </goal>
 </theory>
 </file>
diff --git a/examples/vacid_0_build_maze/why3shapes.gz b/examples/vacid_0_build_maze/why3shapes.gz
index c32f221694921882dfaf5fe7d814946c06cb8f94..365233f295f4c1847a45556d0b52805e6b9093eb 100644
GIT binary patch
literal 990
zcmb2|=3oGW|9iuIyB}K!>^;B!L}fc`sOP4X89FVj&I?}ddnu(7eUCRMecAqmneqEK
z$=(jl(mr#*Z@$pfc}v3mLzfoCv)){sTfN?QZOT>8EpFFh5A3@vQ1JZx^nZWezdQZ)
z`{%FU&Ds4dV%!dO9_G2bJxRKDjv$}q96v`hR(C6*v+9z~6Gf%+1s1L<&Hf$sb?z%c
z?H5&he=EqjZMk@Q-)2M3YvEQ|Z?c80vukoUuB&(2^}k)<h}2r~wUY#<icK&vn)<?u
zf33kHGkL!gEK{3SzuI8BFq9+rZ88Uw_C@Z8xqk|rZZ)+tgoba`NL}CBr^F&Wm2>a=
zjrVujm;b%~eD3>Q!EgR`sn@^s%b))FdiVcl@&C)FZeCaSN&lbWuj%3crRGZNXgA;5
zKWD#waSxB<O`}t0p9|jW=l2^w%lbX{#)ei=ukVYQZ3;GBTA4cW^5!>uw^T$KlbD!f
zc5t=?^WRxw7WnDmTuz1H+$|GlH*ZqmQO|pDMF09a%RA4FbgSwLwW57@2u{&i{G^b}
z*zklt|7V5*fqzy3H+yOnm?!ubFX&smtl(y|{AtfDOVLZuerfLBbI?uCVfstsJG_Pt
zA3xV`T;W?~6tdjlMZ<+`0i#fNd8dxRgpPym_Rni8tp8u0EBE(%#k?PTz2EOtNi5?!
z{Z6PuW&7%B8&qD1O)GY^UU4J##Ys1lbzSO)GxQFZY@W$JTl<^$)Hq>Jb^8}qo2&zF
zJQDM2?`oIuaSM7FI?<r{q>)eF@752C`&7e3<0A`nb1iqZoiu+vVL#srb!Ej^K1DWd
zcEMXs`SvxL%-Zi_Ufv6k7k{7PrFvqobgy<U=h0l_1v^;p=soFfUNgyg;grSa*7qB?
zPf05Cb)QrGa`Wo8Ulzw#`#kk{_R&hJ(|D7FW)t&AF@fo;GS<C$x4BsI`IH;qj+OCb
z<T0N8yUM9c#;}xW`STxdf2Q(&ddYufwz+e1n^VQBi5D59_!9Ohn)!Bq+4Xwr7dGz|
zpN+Pp@5yky^@O7|><owNipfhnW!)}L>zaQ;e^o@|+q=J?h4;PJo4jbpy__}e8(%8r
z8%CPEt1FM&-8jX;`L}61LxT3ZbFV+O2<XmN^XJ|sDI4=N)787W_{2=+)=g${PXZ1u
zy#Bxb0=KNy4a@YYldY<)+@((*`84}P!qe#<tN5#|W-q-xdFtf0pG(!G6=V8D*tE;}
zHr@J`9o(tAKWP7nYodRY?kirhI{CU$D!1%#n7r|S_1ljkepaS#D01?;E%S4uR_QF2
zXO{y$nT3dmL>E>sJAZ4AkNUkpBX8q%2Q+J<T%_8U)cf535)wH*>-qBk3`ZS`=bja0
GU;qFiqu_r4

literal 2423
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
OxcNTo8mPK4FaQ87*vgpz

diff --git a/examples/vacid_0_red_black_trees/vacid_0_red_black_trees_WP_RedBlackTree_WP_parameter_add_1.v b/examples/vacid_0_red_black_trees/vacid_0_red_black_trees_RedBlackTree_VC_add_1.v
similarity index 82%
rename from examples/vacid_0_red_black_trees/vacid_0_red_black_trees_WP_RedBlackTree_WP_parameter_add_1.v
rename to examples/vacid_0_red_black_trees/vacid_0_red_black_trees_RedBlackTree_VC_add_1.v
index 883f03b00b..3215baaa99 100644
--- a/examples/vacid_0_red_black_trees/vacid_0_red_black_trees_WP_RedBlackTree_WP_parameter_add_1.v
+++ b/examples/vacid_0_red_black_trees/vacid_0_red_black_trees_RedBlackTree_VC_add_1.v
@@ -7,10 +7,6 @@ Require int.Int.
 (* Why3 assumption *)
 Definition unit := unit.
 
-Axiom qtmark : Type.
-Parameter qtmark_WhyType : WhyType qtmark.
-Existing Instance qtmark_WhyType.
-
 (* Why3 assumption *)
 Definition key := Z.
 
@@ -166,40 +162,31 @@ Axiom almost_rbtree_rbtree_black : forall (x:Z) (v:Z) (l:tree) (r:tree)
   (n:Z), (almost_rbtree n (Node Black l x v r)) -> (rbtree n (Node Black l x
   v r)).
 
-
-
 (* Why3 goal *)
-Theorem WP_parameter_add : forall (t:tree) (k:Z) (v:Z), ((bst t) /\
-  exists n:Z, (rbtree n t)) -> (((bst t) /\ exists n:Z, (rbtree n t)) ->
-  forall (result:tree), ((bst result) /\ ((forall (n:Z), (rbtree n t) ->
-  (match result with
-  | Leaf => (n = 0%Z)
-  | (Node Red l _ _ r) => (rbtree n l) /\ (rbtree n r)
-  | (Node Black l _ _ r) => (rbtree (n - 1%Z)%Z l) /\ (rbtree (n - 1%Z)%Z r)
-  end /\
-  (match t with
-  | (Node Red _ _ _ _) => False
-  | (Leaf|(Node Black _ _ _ _)) => True
-  end -> (rbtree n result)))) /\ ((memt result k v) /\ forall (k':Z) (v':Z),
-  ((memt result k' v') \/ (((k' = k) -> (v' = v)) /\ ((~ (k' = k)) -> (memt t
-  k' v')))) -> ((memt result k' v') /\ (((k' = k) /\ (v' = v)) \/
-  ((~ (k' = k)) /\ (memt t k' v'))))))) -> forall (x:color) (x1:tree) (x2:Z)
-  (x3:Z) (x4:tree), (result = (Node x x1 x2 x3 x4)) -> exists n:Z, (rbtree n
-  (Node Black x1 x2 x3 x4))).
-intros t k v (h1,(n,h2)) _ result (h5,(h6,(h7,h8))) c x1 x2
-        x3 x4 h9.
+Theorem VC_add : forall (t:tree) (k:Z) (v:Z), ((bst t) /\ exists n:Z, (rbtree
+  n t)) -> forall (o:tree), ((bst o) /\ ((forall (n:Z), (rbtree n t) ->
+  ((almost_rbtree n o) /\ ((is_not_red t) -> (rbtree n o)))) /\ ((memt o k
+  v) /\ forall (k':Z) (v':Z), ((memt o k' v') \/ (((k' = k) -> (v' = v)) /\
+  ((~ (k' = k)) -> (memt t k' v')))) -> ((memt o k' v') /\ (((k' = k) /\
+  (v' = v)) \/ ((~ (k' = k)) /\ (memt t k' v'))))))) -> forall (result:tree),
+  (exists x:color, (exists x1:tree, (exists x2:Z, (exists x3:Z,
+  (exists x4:tree, (o = (Node x x1 x2 x3 x4)) /\ (result = (Node Black x1 x2
+  x3 x4))))))) -> exists n:Z, (rbtree n result).
+intros t k v (h1,(n,h2)) o (h3,(h4,(h5,h6))) result
+(x,(x1,(x2,(x3,(x4,(h7,h8)))))).
+
 subst.
 intuition.
-generalize (h6 n h2); clear h6.
+generalize (h4 n h2); clear h4.
 intros.
-destruct c; intuition.
+destruct x; intuition.
 (* c = Red *)
 exists (n+1)%Z; intuition.
 simpl rbtree. replace (n+1-1)%Z with n by omega.
-intuition.
+simpl in H0. intuition.
+
 (* c = Black *)
 exists n; intuition.
-simpl rbtree. 
-intuition.
+
 Qed.
 
diff --git a/examples/vacid_0_red_black_trees/why3session.xml b/examples/vacid_0_red_black_trees/why3session.xml
index 19815cc5f4..3a8cc37cda 100644
--- a/examples/vacid_0_red_black_trees/why3session.xml
+++ b/examples/vacid_0_red_black_trees/why3session.xml
@@ -2,29 +2,27 @@
 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
 "http://why3.lri.fr/why3session.dtd">
 <why3session shape_version="4">
-<prover id="0" name="Alt-Ergo" version="0.99.1" timelimit="5" steplimit="0" memlimit="0"/>
-<prover id="1" name="Coq" version="8.6" timelimit="10" steplimit="0" memlimit="0"/>
-<prover id="2" name="CVC3" version="2.4.1" timelimit="5" steplimit="0" memlimit="0"/>
+<prover id="0" name="Eprover" version="1.8-001" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="1" name="Coq" version="8.6" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="2" name="CVC3" version="2.4.1" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="3" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
 <prover id="4" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="5" name="Spass" version="3.7" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="8" name="Vampire" version="0.6" timelimit="10" steplimit="0" memlimit="1000"/>
-<prover id="9" name="Eprover" version="1.8-001" timelimit="5" steplimit="0" memlimit="1000"/>
 <file name="../vacid_0_red_black_trees.mlw" expanded="true">
-<theory name="RedBlackTree" sum="a38b3f824ba7f8df57ddfa6a9b9a64bf">
+<theory name="RedBlackTree" sum="640b954b66cd1b42441a7f7ed1b1db5d" expanded="true">
  <goal name="memt_color">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="18"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="19"/></proof>
  </goal>
  <goal name="lt_leaf">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="4"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="5"/></proof>
  </goal>
  <goal name="gt_leaf">
- <proof prover="0" timelimit="10"><result status="valid" time="0.00" steps="4"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="5"/></proof>
  </goal>
  <goal name="lt_tree_node">
- <proof prover="0" timelimit="10"><result status="valid" time="0.00" steps="18"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="20"/></proof>
  </goal>
  <goal name="gt_tree_node">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="18"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="20"/></proof>
  </goal>
  <goal name="lt_node_lt">
  <proof prover="1" edited="vacid_0_red_black_trees_WP_RedBlackTree_lt_node_lt_1.v"><result status="valid" time="0.30"/></proof>
@@ -33,1517 +31,184 @@
  <proof prover="1" edited="vacid_0_red_black_trees_WP_RedBlackTree_gt_node_gt_1.v"><result status="valid" time="0.25"/></proof>
  </goal>
  <goal name="lt_left">
- <proof prover="2" timelimit="10"><result status="valid" time="0.06"/></proof>
+ <proof prover="0"><result status="valid" time="0.03"/></proof>
+ <proof prover="2"><result status="valid" time="0.06"/></proof>
  </goal>
  <goal name="lt_right">
- <proof prover="2" timelimit="10"><result status="valid" time="0.06"/></proof>
+ <proof prover="0"><result status="valid" time="0.04"/></proof>
+ <proof prover="2"><result status="valid" time="0.06"/></proof>
  </goal>
  <goal name="gt_left">
- <proof prover="2" timelimit="10"><result status="valid" time="0.06"/></proof>
+ <proof prover="0"><result status="valid" time="0.03"/></proof>
+ <proof prover="2"><result status="valid" time="0.06"/></proof>
  </goal>
  <goal name="gt_right">
- <proof prover="2" timelimit="10"><result status="valid" time="0.06"/></proof>
+ <proof prover="0"><result status="valid" time="0.03"/></proof>
+ <proof prover="2"><result status="valid" time="0.06"/></proof>
  </goal>
  <goal name="lt_tree_not_in">
- <proof prover="0" timelimit="10"><result status="valid" time="0.02" steps="3"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="4"/></proof>
  </goal>
  <goal name="lt_tree_trans">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="6"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="7"/></proof>
  </goal>
  <goal name="gt_tree_not_in">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="3"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="4"/></proof>
  </goal>
  <goal name="gt_tree_trans">
- <proof prover="0" timelimit="10"><result status="valid" time="0.02" steps="6"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="7"/></proof>
  </goal>
  <goal name="bst_Leaf">
- <proof prover="0" timelimit="10"><result status="valid" time="0.00" steps="2"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="3"/></proof>
  </goal>
  <goal name="bst_left">
- <proof prover="0" timelimit="10"><result status="valid" time="0.02" steps="10"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="11"/></proof>
  </goal>
  <goal name="bst_right">
- <proof prover="0" timelimit="10"><result status="valid" time="0.02" steps="10"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="11"/></proof>
  </goal>
  <goal name="bst_color">
- <proof prover="0" timelimit="10"><result status="valid" time="0.02" steps="45"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="73"/></proof>
  </goal>
  <goal name="rotate_left">
- <proof prover="0" timelimit="10"><result status="valid" time="0.15" steps="162"/></proof>
+ <proof prover="3"><result status="valid" time="0.04" steps="230"/></proof>
  </goal>
  <goal name="rotate_right">
- <proof prover="0" timelimit="10"><result status="valid" time="0.14" steps="200"/></proof>
+ <proof prover="3"><result status="valid" time="0.04" steps="294"/></proof>
  </goal>
  <goal name="rbtree_Leaf">
- <proof prover="0" timelimit="10"><result status="valid" time="0.02" steps="3"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="4"/></proof>
  </goal>
  <goal name="rbtree_Node1">
- <proof prover="0" timelimit="10"><result status="valid" time="0.05" steps="22"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="45"/></proof>
  </goal>
  <goal name="rbtree_left">
- <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="29"/></proof>
- <proof prover="5"><result status="valid" time="0.03"/></proof>
- <proof prover="9"><result status="valid" time="0.00"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="24"/></proof>
  </goal>
  <goal name="rbtree_right">
- <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="29"/></proof>
- <proof prover="5"><result status="valid" time="0.03"/></proof>
- <proof prover="9"><result status="valid" time="0.00"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="24"/></proof>
  </goal>
- <goal name="WP_parameter find" expl="VC for find">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter find.1" expl="1. exceptional postcondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.01" steps="6"/></proof>
-  </goal>
-  <goal name="WP_parameter find.2" expl="2. postcondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="8"/></proof>
-  </goal>
-  <goal name="WP_parameter find.3" expl="3. variant decrease">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="27"/></proof>
-  </goal>
-  <goal name="WP_parameter find.4" expl="4. precondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.01" steps="15"/></proof>
-  </goal>
-  <goal name="WP_parameter find.5" expl="5. postcondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.01" steps="11"/></proof>
-  </goal>
-  <goal name="WP_parameter find.6" expl="6. exceptional postcondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter find.7" expl="7. variant decrease">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="24"/></proof>
-  </goal>
-  <goal name="WP_parameter find.8" expl="8. precondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="15"/></proof>
-  </goal>
-  <goal name="WP_parameter find.9" expl="9. postcondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="11"/></proof>
-  </goal>
-  <goal name="WP_parameter find.10" expl="10. exceptional postcondition">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="22"/></proof>
-  </goal>
- </transf>
+ <goal name="VC find" expl="VC for find">
+ <proof prover="3"><result status="valid" time="0.03" steps="193"/></proof>
  </goal>
  <goal name="rbtree_almost_rbtree">
- <proof prover="0" timelimit="10"><result status="valid" time="0.03" steps="46"/></proof>
+ <proof prover="3"><result status="valid" time="0.01" steps="68"/></proof>
  </goal>
  <goal name="rbtree_almost_rbtree_ex">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="7"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="7"/></proof>
  </goal>
  <goal name="almost_rbtree_rbtree_black">
- <proof prover="0" timelimit="10"><result status="valid" time="0.01" steps="14"/></proof>
+ <proof prover="3"><result status="valid" time="0.00" steps="8"/></proof>
+ </goal>
+ <goal name="VC lbalance" expl="VC for lbalance">
+ <proof prover="4"><result status="valid" time="0.60"/></proof>
  </goal>
- <goal name="WP_parameter lbalance" expl="VC for lbalance">
+ <goal name="VC rbalance" expl="VC for rbalance">
+ <proof prover="4"><result status="valid" time="4.74"/></proof>
+ </goal>
+ <goal name="VC insert" expl="VC for insert">
  <transf name="split_goal_wp">
-  <goal name="WP_parameter lbalance.1" expl="1. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter lbalance.1.1" expl="1. VC for lbalance">
-   <proof prover="0" timelimit="12"><result status="valid" time="0.18" steps="364"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.1.2" expl="2. VC for lbalance">
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.1.3" expl="3. VC for lbalance">
-   <proof prover="0" timelimit="100"><result status="valid" time="0.25" steps="206"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.1.4" expl="4. VC for lbalance">
-   <proof prover="0" timelimit="8"><result status="valid" time="0.07" steps="142"/></proof>
-   <proof prover="2"><result status="valid" time="0.09"/></proof>
-   <proof prover="4"><result status="valid" time="0.05"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.1.5" expl="5. VC for lbalance">
-   <proof prover="0" timelimit="6"><result status="valid" time="0.08" steps="200"/></proof>
-   <proof prover="4"><result status="valid" time="0.03"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter lbalance.2" expl="2. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter lbalance.2.1" expl="1. VC for lbalance">
-   <proof prover="0"><result status="valid" time="0.02" steps="21"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.2.2" expl="2. VC for lbalance">
-   <proof prover="0" timelimit="120" memlimit="4000"><result status="valid" time="0.02" steps="46"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   <metas>
-    <ts_pos name="key" arity="0" id="383"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="key"/>
-    </ts_pos>
-    <ts_pos name="value" arity="0" id="384"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="value"/>
-    </ts_pos>
-    <ls_pos name="zero" id="467"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="zero"/>
-    </ls_pos>
-    <ls_pos name="one" id="468"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="one"/>
-    </ls_pos>
-    <ls_pos name="infix &lt;" id="469"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="infix &lt;"/>
-    </ls_pos>
-    <ls_pos name="infix &gt;" id="472"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="infix &gt;"/>
-    </ls_pos>
-    <ls_pos name="infix &lt;=" id="481"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="infix &lt;="/>
-    </ls_pos>
-    <ls_pos name="infix +" id="1638"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="infix +"/>
-    </ls_pos>
-    <ls_pos name="prefix -" id="1639"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="prefix -"/>
-    </ls_pos>
-    <ls_pos name="infix *" id="1640"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="infix *"/>
-    </ls_pos>
-    <ls_pos name="infix &gt;=" id="1708"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="infix &gt;="/>
-    </ls_pos>
-    <pr_pos name="memt_color" id="441"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="memt_color"/>
-    </pr_pos>
-    <pr_pos name="Assoc" id="1641"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CommutativeGroup"/>
-     <ip_qualid name="Assoc"/>
-    </pr_pos>
-    <pr_pos name="Unit_def_l" id="1648"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CommutativeGroup"/>
-     <ip_qualid name="Unit_def_l"/>
-    </pr_pos>
-    <pr_pos name="Unit_def_r" id="1651"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CommutativeGroup"/>
-     <ip_qualid name="Unit_def_r"/>
-    </pr_pos>
-    <pr_pos name="Inv_def_l" id="1654"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CommutativeGroup"/>
-     <ip_qualid name="Inv_def_l"/>
-    </pr_pos>
-    <pr_pos name="Inv_def_r" id="1657"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CommutativeGroup"/>
-     <ip_qualid name="Inv_def_r"/>
-    </pr_pos>
-    <pr_pos name="Comm" id="1660"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CommutativeGroup"/>
-     <ip_qualid name="Comm"/>
-     <ip_qualid name="Comm"/>
-    </pr_pos>
-    <pr_pos name="Assoc" id="1665"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Assoc"/>
-     <ip_qualid name="Assoc"/>
-    </pr_pos>
-    <pr_pos name="Mul_distr_l" id="1672"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Mul_distr_l"/>
-    </pr_pos>
-    <pr_pos name="Mul_distr_r" id="1679"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Mul_distr_r"/>
-    </pr_pos>
-    <pr_pos name="Comm" id="1697"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Comm"/>
-     <ip_qualid name="Comm"/>
-    </pr_pos>
-    <pr_pos name="Unitary" id="1702"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Unitary"/>
-    </pr_pos>
-    <pr_pos name="NonTrivialRing" id="1705"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="NonTrivialRing"/>
-    </pr_pos>
-    <pr_pos name="Refl" id="1717"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Refl"/>
-    </pr_pos>
-    <pr_pos name="Trans" id="1720"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Trans"/>
-    </pr_pos>
-    <pr_pos name="Antisymm" id="1727"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Antisymm"/>
-    </pr_pos>
-    <pr_pos name="Total" id="1732"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="Total"/>
-    </pr_pos>
-    <pr_pos name="ZeroLessOne" id="1737"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="ZeroLessOne"/>
-    </pr_pos>
-    <pr_pos name="CompatOrderAdd" id="1738"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CompatOrderAdd"/>
-    </pr_pos>
-    <pr_pos name="CompatOrderMult" id="1745"
-     ip_theory="Int">
-     <ip_library name="int"/>
-     <ip_qualid name="CompatOrderMult"/>
-    </pr_pos>
-    <pr_pos name="lt_leaf" id="2539"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_leaf"/>
-    </pr_pos>
-    <pr_pos name="gt_leaf" id="2543"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_leaf"/>
-    </pr_pos>
-    <pr_pos name="lt_tree_node" id="2547"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_tree_node"/>
-    </pr_pos>
-    <pr_pos name="gt_tree_node" id="2566"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_tree_node"/>
-    </pr_pos>
-    <pr_pos name="lt_node_lt" id="2585"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_node_lt"/>
-    </pr_pos>
-    <pr_pos name="gt_node_gt" id="2604"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_node_gt"/>
-    </pr_pos>
-    <pr_pos name="lt_left" id="2623"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_left"/>
-    </pr_pos>
-    <pr_pos name="lt_right" id="2642"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_right"/>
-    </pr_pos>
-    <pr_pos name="gt_left" id="2661"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_left"/>
-    </pr_pos>
-    <pr_pos name="gt_right" id="2680"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_right"/>
-    </pr_pos>
-    <pr_pos name="lt_tree_not_in" id="2699"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_tree_not_in"/>
-    </pr_pos>
-    <pr_pos name="lt_tree_trans" id="2709"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="lt_tree_trans"/>
-    </pr_pos>
-    <pr_pos name="gt_tree_not_in" id="2719"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_tree_not_in"/>
-    </pr_pos>
-    <pr_pos name="gt_tree_trans" id="2729"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="gt_tree_trans"/>
-    </pr_pos>
-    <pr_pos name="bst_Leaf" id="2773"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="bst_Leaf"/>
-    </pr_pos>
-    <pr_pos name="bst_left" id="2774"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="bst_left"/>
-    </pr_pos>
-    <pr_pos name="bst_right" id="2790"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="bst_right"/>
-    </pr_pos>
-    <pr_pos name="bst_color" id="2806"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="bst_color"/>
-    </pr_pos>
-    <pr_pos name="rotate_left" id="2825"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rotate_left"/>
-    </pr_pos>
-    <pr_pos name="rotate_right" id="2859"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rotate_right"/>
-    </pr_pos>
-    <pr_pos name="rbtree_Leaf" id="2954"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rbtree_Leaf"/>
-    </pr_pos>
-    <pr_pos name="rbtree_Node1" id="2955"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rbtree_Node1"/>
-    </pr_pos>
-    <pr_pos name="rbtree_left" id="2962"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rbtree_left"/>
-    </pr_pos>
-    <pr_pos name="rbtree_right" id="2984"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rbtree_right"/>
-    </pr_pos>
-    <pr_pos name="rbtree_almost_rbtree" id="3286"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rbtree_almost_rbtree"/>
-    </pr_pos>
-    <pr_pos name="rbtree_almost_rbtree_ex" id="3293"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="rbtree_almost_rbtree_ex"/>
-    </pr_pos>
-    <pr_pos name="almost_rbtree_rbtree_black" id="3303"
-     ip_theory="RedBlackTree">
-     <ip_qualid name="almost_rbtree_rbtree_black"/>
-    </pr_pos>
-    <meta name="remove_logic">
-     <meta_arg_ls id="467"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="468"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="469"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="472"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="481"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="1638"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="1639"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="1640"/>
-    </meta>
-    <meta name="remove_logic">
-     <meta_arg_ls id="1708"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="441"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1641"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1648"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1651"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1654"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1657"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1660"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1665"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1672"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1679"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1697"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1702"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1705"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1717"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1720"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1727"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1732"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1737"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1738"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="1745"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2539"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2543"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2547"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2566"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2585"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2604"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2623"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2642"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2661"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2680"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2699"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2709"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2719"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2729"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2773"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2774"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2790"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2806"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2825"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2859"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2954"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2955"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2962"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="2984"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="3286"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="3293"/>
-    </meta>
-    <meta name="remove_prop">
-     <meta_arg_pr id="3303"/>
-    </meta>
-    <meta name="remove_type">
-     <meta_arg_ts id="383"/>
-    </meta>
-    <meta name="remove_type">
-     <meta_arg_ts id="384"/>
-    </meta>
-    <goal name="WP_parameter lbalance.2.2" expl="2. VC for lbalance">
-    <transf name="eliminate_builtin">
-     <goal name="WP_parameter lbalance.2.2.1" expl="1. VC for lbalance">
-     <proof prover="0" timelimit="120" memlimit="4000"><result status="valid" time="0.02" steps="57"/></proof>
-     <proof prover="2" timelimit="10" memlimit="1000"><result status="valid" time="0.01"/></proof>
-     </goal>
-    </transf>
-    </goal>
-   </metas>
-   </goal>
-   <goal name="WP_parameter lbalance.2.3" expl="3. VC for lbalance">
-   <proof prover="0"><result status="valid" time="0.03" steps="62"/></proof>
-   <proof prover="2" timelimit="8"><result status="valid" time="0.15"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.2.4" expl="4. VC for lbalance">
-   <proof prover="0"><result status="valid" time="0.02" steps="65"/></proof>
-   <proof prover="2"><result status="valid" time="0.03"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.2.5" expl="5. VC for lbalance">
-   <proof prover="0"><result status="valid" time="0.01" steps="24"/></proof>
-   <proof prover="2"><result status="valid" time="0.01"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter lbalance.3" expl="3. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="2.05" steps="2335"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.4" expl="4. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.08" steps="176"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.5" expl="5. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.84" steps="1403"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.6" expl="6. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.07" steps="134"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.7" expl="7. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="1.43" steps="1863"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.8" expl="8. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.09" steps="176"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.9" expl="9. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter lbalance.9.1" expl="1. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="20"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.9.2" expl="2. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.06" steps="119"/></proof>
-   <proof prover="4"><result status="valid" time="0.03"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.9.3" expl="3. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.03" steps="61"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.9.4" expl="4. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.03" steps="64"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.9.5" expl="5. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="23"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter lbalance.10" expl="10. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter lbalance.10.1" expl="1. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="19"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.10.2" expl="2. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.11" steps="106"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.10.3" expl="3. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.04" steps="49"/></proof>
-   <proof prover="4"><result status="valid" time="0.03"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.10.4" expl="4. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="51"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter lbalance.10.5" expl="5. VC for lbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="22"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC insert.1" expl="1. variant decrease">
+  <proof prover="4"><result status="valid" time="0.01"/></proof>
   </goal>
-  <goal name="WP_parameter lbalance.11" expl="11. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.71" steps="1173"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.12" expl="12. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.07" steps="134"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.13" expl="13. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.30" steps="365"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
-  </goal>
-  <goal name="WP_parameter lbalance.14" expl="14. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.18" steps="178"/></proof>
+  <goal name="VC insert.2" expl="2. precondition">
   <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="WP_parameter lbalance.15" expl="15. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="50"/></proof>
-  <proof prover="4"><result status="valid" time="0.02"/></proof>
+  <goal name="VC insert.3" expl="3. variant decrease">
+  <proof prover="4"><result status="valid" time="0.01"/></proof>
   </goal>
- </transf>
- </goal>
- <goal name="WP_parameter rbalance" expl="VC for rbalance">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter rbalance.1" expl="1. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter rbalance.1.1" expl="1. VC for rbalance">
-   <proof prover="0" timelimit="14"><result status="valid" time="0.23" steps="386"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.1.2" expl="2. VC for rbalance">
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.1.3" expl="3. VC for rbalance">
-   <proof prover="0" timelimit="100"><result status="valid" time="0.39" steps="453"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.1.4" expl="4. VC for rbalance">
-   <proof prover="0" timelimit="7"><result status="valid" time="0.10" steps="158"/></proof>
-   <proof prover="2"><result status="valid" time="0.10"/></proof>
-   <proof prover="4"><result status="valid" time="0.13"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.1.5" expl="5. VC for rbalance">
-   <proof prover="0" timelimit="6"><result status="valid" time="0.09" steps="212"/></proof>
-   <proof prover="4"><result status="valid" time="0.04"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter rbalance.2" expl="2. postcondition">
-  <proof prover="0" timelimit="120" memlimit="4000"><result status="valid" time="0.08" steps="176"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
-  <metas>
-   <ts_pos name="key" arity="0" id="383"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="key"/>
-   </ts_pos>
-   <ts_pos name="value" arity="0" id="384"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="value"/>
-   </ts_pos>
-   <ls_pos name="zero" id="467"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="zero"/>
-   </ls_pos>
-   <ls_pos name="one" id="468"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="one"/>
-   </ls_pos>
-   <ls_pos name="infix &lt;" id="469"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="infix &lt;"/>
-   </ls_pos>
-   <ls_pos name="infix &gt;" id="472"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="infix &gt;"/>
-   </ls_pos>
-   <ls_pos name="infix &lt;=" id="481"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="infix &lt;="/>
-   </ls_pos>
-   <ls_pos name="infix +" id="1638"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="infix +"/>
-   </ls_pos>
-   <ls_pos name="prefix -" id="1639"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="prefix -"/>
-   </ls_pos>
-   <ls_pos name="infix *" id="1640"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="infix *"/>
-   </ls_pos>
-   <ls_pos name="infix &gt;=" id="1708"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="infix &gt;="/>
-   </ls_pos>
-   <pr_pos name="memt_color" id="441"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="memt_color"/>
-   </pr_pos>
-   <pr_pos name="Assoc" id="1641"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CommutativeGroup"/>
-    <ip_qualid name="Assoc"/>
-   </pr_pos>
-   <pr_pos name="Unit_def_l" id="1648"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CommutativeGroup"/>
-    <ip_qualid name="Unit_def_l"/>
-   </pr_pos>
-   <pr_pos name="Unit_def_r" id="1651"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CommutativeGroup"/>
-    <ip_qualid name="Unit_def_r"/>
-   </pr_pos>
-   <pr_pos name="Inv_def_l" id="1654"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CommutativeGroup"/>
-    <ip_qualid name="Inv_def_l"/>
-   </pr_pos>
-   <pr_pos name="Inv_def_r" id="1657"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CommutativeGroup"/>
-    <ip_qualid name="Inv_def_r"/>
-   </pr_pos>
-   <pr_pos name="Comm" id="1660"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CommutativeGroup"/>
-    <ip_qualid name="Comm"/>
-    <ip_qualid name="Comm"/>
-   </pr_pos>
-   <pr_pos name="Assoc" id="1665"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Assoc"/>
-    <ip_qualid name="Assoc"/>
-   </pr_pos>
-   <pr_pos name="Mul_distr_l" id="1672"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Mul_distr_l"/>
-   </pr_pos>
-   <pr_pos name="Mul_distr_r" id="1679"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Mul_distr_r"/>
-   </pr_pos>
-   <pr_pos name="Comm" id="1697"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Comm"/>
-    <ip_qualid name="Comm"/>
-   </pr_pos>
-   <pr_pos name="Unitary" id="1702"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Unitary"/>
-   </pr_pos>
-   <pr_pos name="NonTrivialRing" id="1705"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="NonTrivialRing"/>
-   </pr_pos>
-   <pr_pos name="Refl" id="1717"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Refl"/>
-   </pr_pos>
-   <pr_pos name="Trans" id="1720"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Trans"/>
-   </pr_pos>
-   <pr_pos name="Antisymm" id="1727"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Antisymm"/>
-   </pr_pos>
-   <pr_pos name="Total" id="1732"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="Total"/>
-   </pr_pos>
-   <pr_pos name="ZeroLessOne" id="1737"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="ZeroLessOne"/>
-   </pr_pos>
-   <pr_pos name="CompatOrderAdd" id="1738"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CompatOrderAdd"/>
-   </pr_pos>
-   <pr_pos name="CompatOrderMult" id="1745"
-    ip_theory="Int">
-    <ip_library name="int"/>
-    <ip_qualid name="CompatOrderMult"/>
-   </pr_pos>
-   <pr_pos name="lt_leaf" id="2539"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_leaf"/>
-   </pr_pos>
-   <pr_pos name="gt_leaf" id="2543"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_leaf"/>
-   </pr_pos>
-   <pr_pos name="lt_tree_node" id="2547"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_tree_node"/>
-   </pr_pos>
-   <pr_pos name="gt_tree_node" id="2566"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_tree_node"/>
-   </pr_pos>
-   <pr_pos name="lt_node_lt" id="2585"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_node_lt"/>
-   </pr_pos>
-   <pr_pos name="gt_node_gt" id="2604"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_node_gt"/>
-   </pr_pos>
-   <pr_pos name="lt_left" id="2623"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_left"/>
-   </pr_pos>
-   <pr_pos name="lt_right" id="2642"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_right"/>
-   </pr_pos>
-   <pr_pos name="gt_left" id="2661"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_left"/>
-   </pr_pos>
-   <pr_pos name="gt_right" id="2680"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_right"/>
-   </pr_pos>
-   <pr_pos name="lt_tree_not_in" id="2699"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_tree_not_in"/>
-   </pr_pos>
-   <pr_pos name="lt_tree_trans" id="2709"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="lt_tree_trans"/>
-   </pr_pos>
-   <pr_pos name="gt_tree_not_in" id="2719"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_tree_not_in"/>
-   </pr_pos>
-   <pr_pos name="gt_tree_trans" id="2729"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="gt_tree_trans"/>
-   </pr_pos>
-   <pr_pos name="bst_Leaf" id="2773"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="bst_Leaf"/>
-   </pr_pos>
-   <pr_pos name="bst_left" id="2774"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="bst_left"/>
-   </pr_pos>
-   <pr_pos name="bst_right" id="2790"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="bst_right"/>
-   </pr_pos>
-   <pr_pos name="bst_color" id="2806"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="bst_color"/>
-   </pr_pos>
-   <pr_pos name="rotate_left" id="2825"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rotate_left"/>
-   </pr_pos>
-   <pr_pos name="rotate_right" id="2859"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rotate_right"/>
-   </pr_pos>
-   <pr_pos name="rbtree_Leaf" id="2954"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rbtree_Leaf"/>
-   </pr_pos>
-   <pr_pos name="rbtree_Node1" id="2955"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rbtree_Node1"/>
-   </pr_pos>
-   <pr_pos name="rbtree_left" id="2962"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rbtree_left"/>
-   </pr_pos>
-   <pr_pos name="rbtree_right" id="2984"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rbtree_right"/>
-   </pr_pos>
-   <pr_pos name="rbtree_almost_rbtree" id="3286"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rbtree_almost_rbtree"/>
-   </pr_pos>
-   <pr_pos name="rbtree_almost_rbtree_ex" id="3293"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="rbtree_almost_rbtree_ex"/>
-   </pr_pos>
-   <pr_pos name="almost_rbtree_rbtree_black" id="3303"
-    ip_theory="RedBlackTree">
-    <ip_qualid name="almost_rbtree_rbtree_black"/>
-   </pr_pos>
-   <meta name="remove_logic">
-    <meta_arg_ls id="467"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="468"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="469"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="472"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="481"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="1638"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="1639"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="1640"/>
-   </meta>
-   <meta name="remove_logic">
-    <meta_arg_ls id="1708"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="441"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1641"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1648"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1651"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1654"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1657"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1660"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1665"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1672"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1679"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1697"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1702"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1705"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1717"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1720"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1727"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1732"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1737"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1738"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="1745"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2539"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2543"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2547"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2566"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2585"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2604"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2623"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2642"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2661"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2680"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2699"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2709"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2719"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2729"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2773"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2774"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2790"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2806"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2825"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2859"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2954"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2955"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2962"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="2984"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="3286"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="3293"/>
-   </meta>
-   <meta name="remove_prop">
-    <meta_arg_pr id="3303"/>
-   </meta>
-   <meta name="remove_type">
-    <meta_arg_ts id="383"/>
-   </meta>
-   <meta name="remove_type">
-    <meta_arg_ts id="384"/>
-   </meta>
-   <goal name="WP_parameter rbalance.2" expl="2. postcondition">
-   <transf name="eliminate_builtin">
-    <goal name="WP_parameter rbalance.2.1" expl="1. postcondition">
-    <proof prover="0" timelimit="120" memlimit="4000"><result status="valid" time="0.12" steps="200"/></proof>
-    <proof prover="2" timelimit="10" memlimit="1000"><result status="valid" time="0.01"/></proof>
-    </goal>
-   </transf>
-   </goal>
-  </metas>
+  <goal name="VC insert.4" expl="4. precondition">
+  <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.3" expl="3. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="1.59" steps="1990"/></proof>
+  <goal name="VC insert.5" expl="5. variant decrease">
+  <proof prover="4"><result status="valid" time="0.01"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.4" expl="4. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.06" steps="176"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
+  <goal name="VC insert.6" expl="6. precondition">
+  <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.5" expl="5. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.75" steps="1148"/></proof>
+  <goal name="VC insert.7" expl="7. precondition">
+  <proof prover="4"><result status="valid" time="0.03"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.6" expl="6. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.06" steps="134"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
+  <goal name="VC insert.8" expl="8. variant decrease">
+  <proof prover="4"><result status="valid" time="0.01"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.7" expl="7. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="1.73" steps="2178"/></proof>
+  <goal name="VC insert.9" expl="9. precondition">
+  <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.8" expl="8. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.09" steps="176"/></proof>
+  <goal name="VC insert.10" expl="10. precondition">
   <proof prover="4"><result status="valid" time="0.05"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.9" expl="9. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter rbalance.9.1" expl="1. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="20"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.9.2" expl="2. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.08" steps="131"/></proof>
-   <proof prover="4"><result status="valid" time="0.04"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.9.3" expl="3. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.04" steps="61"/></proof>
-   <proof prover="4"><result status="valid" time="0.03"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.9.4" expl="4. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.03" steps="64"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.9.5" expl="5. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="23"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC insert.11" expl="11. postcondition">
+  <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.10" expl="10. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter rbalance.10.1" expl="1. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="19"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.10.2" expl="2. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.12" steps="122"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.10.3" expl="3. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.03" steps="49"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.10.4" expl="4. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.03" steps="51"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.10.5" expl="5. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="22"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC insert.12" expl="12. postcondition">
+  <proof prover="4"><result status="valid" time="0.36"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.11" expl="11. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.78" steps="1333"/></proof>
+  <goal name="VC insert.13" expl="13. postcondition">
+  <proof prover="4"><result status="valid" time="0.40"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.12" expl="12. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.07" steps="134"/></proof>
-  <proof prover="4"><result status="valid" time="0.04"/></proof>
+  <goal name="VC insert.14" expl="14. postcondition">
+  <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.13" expl="13. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter rbalance.13.1" expl="1. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.01" steps="19"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.13.2" expl="2. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.06" steps="120"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.13.3" expl="3. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="49"/></proof>
-   <proof prover="4"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.13.4" expl="4. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="51"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-   <goal name="WP_parameter rbalance.13.5" expl="5. VC for rbalance">
-   <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="22"/></proof>
-   <proof prover="4"><result status="valid" time="0.01"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC insert.15" expl="15. postcondition">
+  <proof prover="4"><result status="valid" time="0.13"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.14" expl="14. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.17" steps="178"/></proof>
-  <proof prover="4"><result status="valid" time="0.02"/></proof>
+  <goal name="VC insert.16" expl="16. postcondition">
+  <proof prover="4"><result status="valid" time="0.14"/></proof>
   </goal>
-  <goal name="WP_parameter rbalance.15" expl="15. postcondition">
-  <proof prover="0" memlimit="1000"><result status="valid" time="0.02" steps="47"/></proof>
+  <goal name="VC insert.17" expl="17. postcondition">
   <proof prover="4"><result status="valid" time="0.02"/></proof>
   </goal>
  </transf>
  </goal>
- <goal name="WP_parameter insert" expl="VC for insert">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter insert.1" expl="1. postcondition">
-  <proof prover="0"><result status="valid" time="0.07" steps="109"/></proof>
-  <proof prover="2"><result status="valid" time="0.04"/></proof>
+ <goal name="VC add" expl="VC for add" expanded="true">
+ <transf name="split_goal_wp" expanded="true">
+  <goal name="VC add.1" expl="1. precondition">
+  <proof prover="4"><result status="valid" time="0.01"/></proof>
   </goal>
-  <goal name="WP_parameter insert.2" expl="2. variant decrease">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="28"/></proof>
+  <goal name="VC add.2" expl="2. unreachable point">
+  <proof prover="4"><result status="valid" time="0.01"/></proof>
   </goal>
-  <goal name="WP_parameter insert.3" expl="3. precondition">
-  <proof prover="0"><result status="valid" time="0.06" steps="33"/></proof>
-  <proof prover="2"><result status="valid" time="0.02"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.4" expl="4. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter insert.4.1" expl="1. VC for insert">
-   <proof prover="0"><result status="valid" time="0.05" steps="76"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.4.2" expl="2. VC for insert">
-   <proof prover="2" timelimit="6"><result status="valid" time="0.12"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.4.3" expl="3. VC for insert">
-   <proof prover="0"><result status="valid" time="0.08" steps="50"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.4.4" expl="4. VC for insert">
-   <proof prover="0"><result status="valid" time="0.01" steps="20"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.4.5" expl="5. VC for insert">
-   <proof prover="0"><result status="valid" time="0.11" steps="76"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.4.6" expl="6. VC for insert">
-   <proof prover="0"><result status="valid" time="0.12" steps="42"/></proof>
-   <proof prover="2" timelimit="9"><result status="valid" time="0.16"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.4.7" expl="7. VC for insert">
-   <proof prover="0"><result status="valid" time="0.04" steps="45"/></proof>
-   <proof prover="2" timelimit="8"><result status="valid" time="0.05"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter insert.5" expl="5. variant decrease">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="26"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.6" expl="6. precondition">
-  <proof prover="0"><result status="valid" time="0.06" steps="34"/></proof>
-  <proof prover="2"><result status="valid" time="0.01"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.7" expl="7. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter insert.7.1" expl="1. VC for insert">
-   <proof prover="0"><result status="valid" time="0.05" steps="76"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.7.2" expl="2. VC for insert">
-   <proof prover="2" timelimit="6"><result status="valid" time="0.12"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.7.3" expl="3. VC for insert">
-   <proof prover="0"><result status="valid" time="0.12" steps="51"/></proof>
-   <proof prover="2"><result status="valid" time="0.03"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.7.4" expl="4. VC for insert">
-   <proof prover="0"><result status="valid" time="0.02" steps="21"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.7.5" expl="5. VC for insert">
-   <proof prover="0"><result status="valid" time="0.04" steps="77"/></proof>
-   <proof prover="2" timelimit="10"><result status="valid" time="0.06"/></proof>
+  <goal name="VC add.3" expl="3. postcondition" expanded="true">
+  <transf name="split_goal_wp" expanded="true">
+   <goal name="VC add.3.1" expl="1. VC for add">
+   <proof prover="3"><result status="valid" time="0.00" steps="11"/></proof>
    </goal>
-   <goal name="WP_parameter insert.7.6" expl="6. VC for insert">
-   <proof prover="0"><result status="valid" time="0.12" steps="43"/></proof>
-   <proof prover="2" timelimit="9"><result status="valid" time="0.05"/></proof>
+   <goal name="VC add.3.2" expl="2. VC for add" expanded="true">
+   <proof prover="1" edited="vacid_0_red_black_trees_RedBlackTree_VC_add_1.v"><result status="valid" time="0.35"/></proof>
    </goal>
-   <goal name="WP_parameter insert.7.7" expl="7. VC for insert">
-   <proof prover="0"><result status="valid" time="0.04" steps="46"/></proof>
-   <proof prover="2" timelimit="9"><result status="valid" time="0.05"/></proof>
+   <goal name="VC add.3.3" expl="3. VC for add">
+   <proof prover="3"><result status="valid" time="0.01" steps="11"/></proof>
    </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter insert.8" expl="8. postcondition">
-  <proof prover="0"><result status="valid" time="0.12" steps="185"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.9" expl="9. variant decrease">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="28"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.10" expl="10. precondition">
-  <proof prover="0"><result status="valid" time="0.03" steps="31"/></proof>
-  <proof prover="2"><result status="valid" time="0.02"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.11" expl="11. precondition">
-  <proof prover="0"><result status="valid" time="0.07" steps="72"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.12" expl="12. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter insert.12.1" expl="1. VC for insert">
-   <proof prover="0"><result status="valid" time="0.01" steps="16"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.12.2" expl="2. VC for insert">
-   <proof prover="2" timelimit="100"><result status="valid" time="0.12"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.12.3" expl="3. VC for insert">
-   <proof prover="2" timelimit="10" memlimit="1000"><result status="valid" time="0.18"/></proof>
-   <proof prover="4" timelimit="10"><result status="valid" time="0.02"/></proof>
-   <proof prover="9" timelimit="10"><result status="valid" time="0.07"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.12.4" expl="4. VC for insert">
-   <proof prover="0"><result status="valid" time="0.01" steps="18"/></proof>
-   <proof prover="2"><result status="valid" time="0.10"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.12.5" expl="5. VC for insert">
-   <proof prover="0"><result status="valid" time="0.10" steps="66"/></proof>
-   <proof prover="2"><result status="valid" time="0.04"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.12.6" expl="6. VC for insert">
-   <proof prover="0"><result status="valid" time="0.02" steps="40"/></proof>
-   <proof prover="2"><result status="valid" time="0.04"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.12.7" expl="7. VC for insert">
-   <proof prover="0"><result status="valid" time="0.13" steps="81"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter insert.13" expl="13. variant decrease">
-  <proof prover="0" memlimit="4000"><result status="valid" time="0.02" steps="26"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.14" expl="14. precondition">
-  <proof prover="0"><result status="valid" time="0.04" steps="32"/></proof>
-  <proof prover="2"><result status="valid" time="0.02"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.15" expl="15. precondition">
-  <proof prover="0"><result status="valid" time="0.07" steps="65"/></proof>
-  </goal>
-  <goal name="WP_parameter insert.16" expl="16. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter insert.16.1" expl="1. VC for insert">
-   <proof prover="0"><result status="valid" time="0.01" steps="17"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.16.2" expl="2. VC for insert">
-   <proof prover="2" timelimit="100"><result status="valid" time="0.10"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.16.3" expl="3. VC for insert">
-   <proof prover="2" timelimit="10" memlimit="1000"><result status="valid" time="0.16"/></proof>
-   <proof prover="4" timelimit="10"><result status="valid" time="0.02"/></proof>
-   <proof prover="8"><result status="valid" time="2.50"/></proof>
-   <proof prover="9" timelimit="10"><result status="valid" time="0.04"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.16.4" expl="4. VC for insert">
-   <proof prover="0"><result status="valid" time="0.02" steps="19"/></proof>
-   <proof prover="2"><result status="valid" time="0.10"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.16.5" expl="5. VC for insert">
-   <proof prover="0"><result status="valid" time="0.10" steps="67"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.16.6" expl="6. VC for insert">
-   <proof prover="0"><result status="valid" time="0.02" steps="41"/></proof>
-   <proof prover="2"><result status="valid" time="0.05"/></proof>
-   </goal>
-   <goal name="WP_parameter insert.16.7" expl="7. VC for insert">
-   <proof prover="0"><result status="valid" time="0.13" steps="82"/></proof>
-   </goal>
-  </transf>
-  </goal>
-  <goal name="WP_parameter insert.17" expl="17. postcondition">
-  <proof prover="0"><result status="valid" time="0.09" steps="181"/></proof>
-  </goal>
- </transf>
- </goal>
- <goal name="WP_parameter add" expl="VC for add">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter add.1" expl="1. precondition">
-  <proof prover="0"><result status="valid" time="0.01" steps="5"/></proof>
-  <proof prover="2"><result status="valid" time="0.00"/></proof>
-  </goal>
-  <goal name="WP_parameter add.2" expl="2. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter add.2.1" expl="1. VC for add">
-   <proof prover="0"><result status="valid" time="0.01" steps="17"/></proof>
-   <proof prover="2"><result status="valid" time="0.00"/></proof>
-   </goal>
-   <goal name="WP_parameter add.2.2" expl="2. VC for add">
-   <transf name="inline_goal">
-    <goal name="WP_parameter add.2.2.1" expl="1. VC for add">
-    <proof prover="1" edited="vacid_0_red_black_trees_WP_RedBlackTree_WP_parameter_add_1.v"><result status="valid" time="0.32"/></proof>
-    </goal>
-   </transf>
-   </goal>
-   <goal name="WP_parameter add.2.3" expl="3. VC for add">
-   <proof prover="0"><result status="valid" time="0.01" steps="17"/></proof>
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
-   </goal>
-   <goal name="WP_parameter add.2.4" expl="4. VC for add">
-   <proof prover="2"><result status="valid" time="0.14"/></proof>
+   <goal name="VC add.3.4" expl="4. VC for add">
+   <proof prover="4"><result status="valid" time="0.02"/></proof>
    </goal>
-   <goal name="WP_parameter add.2.5" expl="5. VC for add">
-   <proof prover="2"><result status="valid" time="0.01"/></proof>
+   <goal name="VC add.3.5" expl="5. VC for add">
+   <proof prover="3"><result status="valid" time="0.01" steps="46"/></proof>
    </goal>
-   <goal name="WP_parameter add.2.6" expl="6. VC for add">
-   <proof prover="2"><result status="valid" time="0.02"/></proof>
+   <goal name="VC add.3.6" expl="6. VC for add">
+   <proof prover="3"><result status="valid" time="0.02" steps="97"/></proof>
    </goal>
   </transf>
   </goal>
-  <goal name="WP_parameter add.3" expl="3. unreachable point">
-  <proof prover="0"><result status="valid" time="0.01" steps="9"/></proof>
-  <proof prover="2"><result status="valid" time="0.01"/></proof>
-  </goal>
  </transf>
  </goal>
 </theory>
-<theory name="Vacid0" sum="a6a7c0d76f1bd93c7675b13c1935d91c">
- <goal name="WP_parameter create" expl="VC for create">
- <proof prover="0"><result status="valid" time="0.01" steps="18"/></proof>
- <proof prover="2"><result status="valid" time="0.02"/></proof>
+<theory name="Vacid0" sum="53dd3eb61371a5659cd168332977b7f5">
+ <goal name="VC default" expl="VC for default">
+ <proof prover="3"><result status="valid" time="0.00" steps="4"/></proof>
+ </goal>
+ <goal name="VC create" expl="VC for create">
+ <proof prover="3"><result status="valid" time="0.01" steps="21"/></proof>
  </goal>
- <goal name="WP_parameter replace" expl="VC for replace">
- <proof prover="2"><result status="valid" time="0.04"/></proof>
+ <goal name="VC replace" expl="VC for replace">
+ <proof prover="3"><result status="valid" time="0.02" steps="102"/></proof>
  </goal>
- <goal name="WP_parameter lookup" expl="VC for lookup">
- <proof prover="0"><result status="valid" time="0.02" steps="23"/></proof>
- <proof prover="2"><result status="valid" time="0.02"/></proof>
+ <goal name="VC lookup" expl="VC for lookup">
+ <proof prover="3"><result status="valid" time="0.00" steps="19"/></proof>
  </goal>
- <goal name="WP_parameter remove" expl="VC for remove">
- <proof prover="0"><result status="valid" time="0.03" steps="60"/></proof>
- <proof prover="2"><result status="valid" time="0.01"/></proof>
+ <goal name="VC remove" expl="VC for remove">
+ <proof prover="3"><result status="valid" time="0.01" steps="53"/></proof>
  </goal>
 </theory>
 </file>
diff --git a/examples/vacid_0_red_black_trees/why3shapes.gz b/examples/vacid_0_red_black_trees/why3shapes.gz
index c8e82ea4313e6eb2c1badaa8e1bdf78f94ec3d98..b4a8f703fb4df946a8deff5eebae7b1e9a142401 100644
GIT binary patch
literal 3416
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
OL;nN+a=R2$1_l5pmy9g{

literal 7578
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

diff --git a/examples/vacid_0_sparse_array/vacid_0_sparse_array_2_SparseArray_permutation_1.v b/examples/vacid_0_sparse_array/vacid_0_sparse_array_2_SparseArray_permutation_1.v
index 48502d98f8..d3bca14ecf 100644
--- a/examples/vacid_0_sparse_array/vacid_0_sparse_array_2_SparseArray_permutation_1.v
+++ b/examples/vacid_0_sparse_array/vacid_0_sparse_array_2_SparseArray_permutation_1.v
@@ -2,6 +2,7 @@
 (* Beware! Only edit allowed sections below    *)
 Require Import BuiltIn.
 Require BuiltIn.
+Require HighOrd.
 Require int.Int.
 Require map.Map.
 Require map.Occ.
@@ -10,84 +11,70 @@ Require map.MapInjection.
 (* Why3 assumption *)
 Definition unit := unit.
 
-(* Why3 assumption *)
-Inductive array (a:Type) :=
-  | mk_array : Z -> (map.Map.map Z a) -> array a.
-Axiom array_WhyType : forall (a:Type) {a_WT:WhyType a}, WhyType (array a).
+Axiom array : forall (a:Type), Type.
+Parameter array_WhyType : forall (a:Type) {a_WT:WhyType a},
+  WhyType (array a).
 Existing Instance array_WhyType.
-Implicit Arguments mk_array [[a]].
 
-(* Why3 assumption *)
-Definition elts {a:Type} {a_WT:WhyType a} (v:(array a)): (map.Map.map Z a) :=
-  match v with
-  | (mk_array x x1) => x1
-  end.
+Parameter elts: forall {a:Type} {a_WT:WhyType a}, (array a) -> (Z -> a).
 
-(* Why3 assumption *)
-Definition length {a:Type} {a_WT:WhyType a} (v:(array a)): Z :=
-  match v with
-  | (mk_array x x1) => x
-  end.
+Parameter length: forall {a:Type} {a_WT:WhyType a}, (array a) -> Z.
 
-(* Why3 assumption *)
-Definition get {a:Type} {a_WT:WhyType a} (a1:(array a)) (i:Z): a :=
-  (map.Map.get (elts a1) i).
+Axiom array'invariant : forall {a:Type} {a_WT:WhyType a}, forall (self:(array
+  a)), (0%Z <= (length self))%Z.
 
 (* Why3 assumption *)
-Definition set {a:Type} {a_WT:WhyType a} (a1:(array a)) (i:Z) (v:a): (array
-  a) := (mk_array (length a1) (map.Map.set (elts a1) i v)).
+Definition mixfix_lbrb {a:Type} {a_WT:WhyType a} (a1:(array a)) (i:Z): a :=
+  ((elts a1) i).
 
-(* Why3 assumption *)
-Inductive sparse_array
-  (a:Type) :=
-  | mk_sparse_array : (array a) -> (array Z) -> (array Z) -> Z -> a ->
-      sparse_array a.
-Axiom sparse_array_WhyType : forall (a:Type) {a_WT:WhyType a},
+Parameter mixfix_lblsmnrb: forall {a:Type} {a_WT:WhyType a}, (array a) ->
+  Z -> a -> (array a).
+
+Axiom mixfix_lblsmnrb_spec : forall {a:Type} {a_WT:WhyType a},
+  forall (a1:(array a)) (i:Z) (v:a), ((length (mixfix_lblsmnrb a1 i
+  v)) = (length a1)) /\ ((elts (mixfix_lblsmnrb a1 i
+  v)) = (map.Map.set (elts a1) i v)).
+
+Axiom sparse_array : forall (a:Type), Type.
+Parameter sparse_array_WhyType : forall (a:Type) {a_WT:WhyType a},
   WhyType (sparse_array a).
 Existing Instance sparse_array_WhyType.
-Implicit Arguments mk_sparse_array [[a]].
 
-(* Why3 assumption *)
-Definition def {a:Type} {a_WT:WhyType a} (v:(sparse_array a)): a :=
-  match v with
-  | (mk_sparse_array x x1 x2 x3 x4) => x4
-  end.
+Parameter values: forall {a:Type} {a_WT:WhyType a}, (sparse_array a) ->
+  (array a).
 
-(* Why3 assumption *)
-Definition card {a:Type} {a_WT:WhyType a} (v:(sparse_array a)): Z :=
-  match v with
-  | (mk_sparse_array x x1 x2 x3 x4) => x3
-  end.
+Parameter index: forall {a:Type} {a_WT:WhyType a}, (sparse_array a) -> (array
+  Z).
 
-(* Why3 assumption *)
-Definition back {a:Type} {a_WT:WhyType a} (v:(sparse_array a)): (array Z) :=
-  match v with
-  | (mk_sparse_array x x1 x2 x3 x4) => x2
-  end.
+Parameter back: forall {a:Type} {a_WT:WhyType a}, (sparse_array a) -> (array
+  Z).
 
-(* Why3 assumption *)
-Definition index {a:Type} {a_WT:WhyType a} (v:(sparse_array a)): (array Z) :=
-  match v with
-  | (mk_sparse_array x x1 x2 x3 x4) => x1
-  end.
+Parameter card: forall {a:Type} {a_WT:WhyType a}, (sparse_array a) -> Z.
 
-(* Why3 assumption *)
-Definition values {a:Type} {a_WT:WhyType a} (v:(sparse_array a)): (array
-  a) := match v with
-  | (mk_sparse_array x x1 x2 x3 x4) => x
-  end.
+Parameter def: forall {a:Type} {a_WT:WhyType a}, (sparse_array a) -> a.
+
+Axiom sparse_array'invariant : forall {a:Type} {a_WT:WhyType a},
+  forall (self:(sparse_array a)), ((0%Z <= (card self))%Z /\
+  (((card self) <= (length (values self)))%Z /\
+  ((length (values self)) <= 1000%Z)%Z)) /\
+  ((((length (values self)) = (length (index self))) /\
+  ((length (index self)) = (length (back self)))) /\ forall (i:Z),
+  ((0%Z <= i)%Z /\ (i < (card self))%Z) -> (((0%Z <= (mixfix_lbrb (back self)
+  i))%Z /\ ((mixfix_lbrb (back self) i) < (length (values self)))%Z) /\
+  ((mixfix_lbrb (index self) (mixfix_lbrb (back self) i)) = i))).
 
 (* Why3 assumption *)
 Definition is_elt {a:Type} {a_WT:WhyType a} (a1:(sparse_array a))
-  (i:Z): Prop := ((0%Z <= (get (index a1) i))%Z /\ ((get (index a1)
-  i) < (card a1))%Z) /\ ((get (back a1) (get (index a1) i)) = i).
+  (i:Z): Prop := ((0%Z <= (mixfix_lbrb (index a1) i))%Z /\
+  ((mixfix_lbrb (index a1) i) < (card a1))%Z) /\ ((mixfix_lbrb (back a1)
+  (mixfix_lbrb (index a1) i)) = i).
 
 Parameter value: forall {a:Type} {a_WT:WhyType a}, (sparse_array a) -> Z ->
   a.
 
 Axiom value_def : forall {a:Type} {a_WT:WhyType a}, forall (a1:(sparse_array
-  a)) (i:Z), ((is_elt a1 i) -> ((value a1 i) = (get (values a1) i))) /\
-  ((~ (is_elt a1 i)) -> ((value a1 i) = (def a1))).
+  a)) (i:Z), ((is_elt a1 i) -> ((value a1 i) = (mixfix_lbrb (values a1)
+  i))) /\ ((~ (is_elt a1 i)) -> ((value a1 i) = (def a1))).
 
 (* Why3 assumption *)
 Definition length1 {a:Type} {a_WT:WhyType a} (a1:(sparse_array a)): Z :=
@@ -103,10 +90,11 @@ Theorem permutation : forall {a:Type} {a_WT:WhyType a},
   ((length (values a1)) <= 1000%Z)%Z)) /\
   ((((length (values a1)) = (length (index a1))) /\
   ((length (index a1)) = (length (back a1)))) /\ forall (i:Z),
-  ((0%Z <= i)%Z /\ (i < (card a1))%Z) -> (((0%Z <= (get (back a1) i))%Z /\
-  ((get (back a1) i) < (length (values a1)))%Z) /\ ((get (index a1)
-  (get (back a1) i)) = i)))) -> (((card a1) = (length1 a1)) -> forall (i:Z),
-  ((0%Z <= i)%Z /\ (i < (length1 a1))%Z) -> (is_elt a1 i)).
+  ((0%Z <= i)%Z /\ (i < (card a1))%Z) -> (((0%Z <= (mixfix_lbrb (back a1)
+  i))%Z /\ ((mixfix_lbrb (back a1) i) < (length (values a1)))%Z) /\
+  ((mixfix_lbrb (index a1) (mixfix_lbrb (back a1) i)) = i)))) ->
+  (((card a1) = (length1 a1)) -> forall (i:Z), ((0%Z <= i)%Z /\
+  (i < (length1 a1))%Z) -> (is_elt a1 i)).
 (* Why3 intros a a_WT a1 ((h1,(h2,h3)),((h4,h5),h6)) h7 i (h8,h9). *)
 intros a _a a1.
 destruct a1 as ((n0, a_values), (n1, a_index), (n2, a_back), a_card, a_def); simpl.
diff --git a/examples/vstte12_bfs/why3session.xml b/examples/vstte12_bfs/why3session.xml
index c3e7ec139e..a2b13ea350 100644
--- a/examples/vstte12_bfs/why3session.xml
+++ b/examples/vstte12_bfs/why3session.xml
@@ -2,21 +2,16 @@
 <!DOCTYPE why3session PUBLIC "-//Why3//proof session v5//EN"
 "http://why3.lri.fr/why3session.dtd">
 <why3session shape_version="4">
-<prover id="0" name="Coq" version="8.6" timelimit="10" steplimit="0" memlimit="0"/>
-<prover id="3" name="CVC3" version="2.4.1" timelimit="10" steplimit="0" memlimit="0"/>
-<prover id="4" name="CVC4" version="1.4" timelimit="6" steplimit="0" memlimit="1000"/>
+<prover id="1" name="Alt-Ergo" version="1.30" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="2" name="Eprover" version="1.8-001" timelimit="5" steplimit="0" memlimit="1000"/>
+<prover id="4" name="CVC4" version="1.4" timelimit="5" steplimit="0" memlimit="1000"/>
 <prover id="5" name="Spass" version="3.7" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="6" name="Z3" version="4.3.1" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="7" name="Z3" version="3.2" timelimit="5" steplimit="0" memlimit="1000"/>
-<prover id="8" name="Alt-Ergo" version="0.95.2" timelimit="6" steplimit="0" memlimit="1000"/>
-<prover id="9" name="Alt-Ergo" version="0.99.1" timelimit="10" steplimit="0" memlimit="0"/>
 <file name="../vstte12_bfs.mlw" expanded="true">
-<theory name="Graph" sum="143fe0ebe09e8c4b0c8df4088f6fc209" expanded="true">
+<theory name="Graph" sum="dfe78dd91faea2b36bcfc26c6e6b2e90">
  <goal name="path_nonneg">
  <transf name="induction_pr">
   <goal name="path_nonneg.1" expl="1.">
-  <proof prover="4"><result status="valid" time="0.00"/></proof>
-  <proof prover="8"><result status="valid" time="0.02" steps="4"/></proof>
+  <proof prover="1"><result status="valid" time="0.00" steps="4"/></proof>
   </goal>
   <goal name="path_nonneg.2" expl="2.">
   <proof prover="4"><result status="valid" time="0.00"/></proof>
@@ -26,18 +21,17 @@
  <goal name="path_inversion">
  <transf name="inversion_pr">
   <goal name="path_inversion.1" expl="1.">
-  <proof prover="8"><result status="valid" time="0.02" steps="4"/></proof>
+  <proof prover="1"><result status="valid" time="0.00" steps="4"/></proof>
   </goal>
   <goal name="path_inversion.2" expl="2.">
-  <proof prover="8"><result status="valid" time="0.00" steps="7"/></proof>
+  <proof prover="1"><result status="valid" time="0.00" steps="7"/></proof>
   </goal>
  </transf>
  </goal>
  <goal name="path_closure">
  <transf name="induction_pr">
   <goal name="path_closure.1" expl="1.">
-  <proof prover="4"><result status="valid" time="0.02"/></proof>
-  <proof prover="8"><result status="valid" time="0.02" steps="5"/></proof>
+  <proof prover="1"><result status="valid" time="0.00" steps="5"/></proof>
   </goal>
   <goal name="path_closure.2" expl="2.">
   <proof prover="4"><result status="valid" time="0.01"/></proof>
@@ -45,185 +39,170 @@
  </transf>
  </goal>
 </theory>
-<theory name="BFS" sum="99c8c398973756db21fb40314f8f11cb" expanded="true">
- <goal name="WP_parameter fill_next" expl="VC for fill_next">
+<theory name="BFS" sum="f263bf440e119e4ded3454eef5c4cfa8" expanded="true">
+ <goal name="VC fill_next" expl="VC for fill_next">
  <transf name="split_goal_wp">
-  <goal name="WP_parameter fill_next.1" expl="1. loop invariant init">
-  <proof prover="3"><result status="valid" time="0.02"/></proof>
+  <goal name="VC fill_next.1" expl="1. loop invariant init">
+  <proof prover="1"><result status="valid" time="0.02" steps="40"/></proof>
   </goal>
-  <goal name="WP_parameter fill_next.2" expl="2. precondition">
-  <proof prover="9"><result status="valid" time="0.01" steps="8"/></proof>
+  <goal name="VC fill_next.2" expl="2. precondition">
+  <proof prover="1"><result status="valid" time="0.01" steps="9"/></proof>
   </goal>
-  <goal name="WP_parameter fill_next.3" expl="3. loop invariant preservation">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter fill_next.3.1" expl="1. VC for fill_next">
-   <proof prover="3" timelimit="20"><result status="valid" time="4.37"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.3.2" expl="2. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.02" steps="23"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.3.3" expl="3. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.04" steps="148"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.3.4" expl="4. VC for fill_next">
-   <proof prover="6"><result status="valid" time="0.01"/></proof>
-   <proof prover="7"><result status="valid" time="0.02"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC fill_next.3" expl="3. loop variant decrease">
+  <proof prover="1"><result status="valid" time="0.02" steps="49"/></proof>
   </goal>
-  <goal name="WP_parameter fill_next.4" expl="4. loop variant decrease">
-  <proof prover="8" timelimit="5" memlimit="4000"><result status="valid" time="0.01" steps="22"/></proof>
-  </goal>
-  <goal name="WP_parameter fill_next.5" expl="5. loop invariant preservation">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter fill_next.5.1" expl="1. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.01" steps="11"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.5.2" expl="2. VC for fill_next">
-   <proof prover="9" timelimit="5" memlimit="1000"><result status="valid" time="0.01" steps="21"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.5.3" expl="3. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.03" steps="87"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.5.4" expl="4. VC for fill_next">
+  <goal name="VC fill_next.4" expl="4. loop invariant preservation">
+  <transf name="introduce_premises">
+   <goal name="VC fill_next.4.1" expl="1. loop invariant preservation">
    <transf name="inline_goal">
-    <goal name="WP_parameter fill_next.5.4.1" expl="1. VC for fill_next">
-    <proof prover="9"><result status="valid" time="0.06" steps="111"/></proof>
+    <goal name="VC fill_next.4.1.1" expl="1. loop invariant preservation">
+    <transf name="split_goal_wp">
+     <goal name="VC fill_next.4.1.1.1" expl="1. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.03" steps="116"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.2" expl="2. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.01" steps="28"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.3" expl="3. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.03" steps="115"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.4" expl="4. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.04" steps="150"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.5" expl="5. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.01" steps="46"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.6" expl="6. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.58" steps="2031"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.7" expl="7. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.01" steps="52"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.8" expl="8. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.02" steps="72"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.9" expl="9. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.01" steps="52"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.10" expl="10. VC for fill_next">
+     <proof prover="1"><result status="valid" time="0.11" steps="372"/></proof>
+     </goal>
+     <goal name="VC fill_next.4.1.1.11" expl="11. VC for fill_next">
+     <proof prover="2"><result status="valid" time="0.33"/></proof>
+     </goal>
+    </transf>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
-  <goal name="WP_parameter fill_next.6" expl="6. loop variant decrease">
-  <proof prover="8" timelimit="5" memlimit="4000"><result status="valid" time="0.02" steps="20"/></proof>
+  <goal name="VC fill_next.5" expl="5. loop variant decrease">
+  <proof prover="1"><result status="valid" time="0.01" steps="48"/></proof>
   </goal>
-  <goal name="WP_parameter fill_next.7" expl="7. postcondition">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter fill_next.7.1" expl="1. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.01" steps="8"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.7.2" expl="2. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.07" steps="257"/></proof>
-   </goal>
-   <goal name="WP_parameter fill_next.7.3" expl="3. VC for fill_next">
-   <proof prover="9"><result status="valid" time="0.06" steps="82"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC fill_next.6" expl="6. loop invariant preservation">
+  <proof prover="1"><result status="valid" time="0.36" steps="694"/></proof>
+  </goal>
+  <goal name="VC fill_next.7" expl="7. postcondition">
+  <proof prover="1"><result status="valid" time="0.26" steps="759"/></proof>
   </goal>
  </transf>
  </goal>
- <goal name="WP_parameter bfs" expl="VC for bfs">
- <transf name="split_goal_wp">
-  <goal name="WP_parameter bfs.1" expl="1. loop invariant init">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter bfs.1.1" expl="1. VC for bfs">
-   <proof prover="3"><result status="valid" time="0.18"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.1.2" expl="2. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.02" steps="4"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.1.3" expl="3. VC for bfs">
-   <transf name="inline_goal">
-    <goal name="WP_parameter bfs.1.3.1" expl="1. VC for bfs">
-    <proof prover="9"><result status="valid" time="0.01" steps="4"/></proof>
-    </goal>
-   </transf>
-   </goal>
-   <goal name="WP_parameter bfs.1.4" expl="4. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.02" steps="1"/></proof>
-   </goal>
-  </transf>
+ <goal name="VC bfs" expl="VC for bfs" expanded="true">
+ <transf name="split_goal_wp" expanded="true">
+  <goal name="VC bfs.1" expl="1. loop invariant init">
+  <proof prover="1"><result status="valid" time="0.19" steps="971"/></proof>
   </goal>
-  <goal name="WP_parameter bfs.2" expl="2. precondition">
-  <proof prover="9"><result status="valid" time="0.02" steps="5"/></proof>
+  <goal name="VC bfs.2" expl="2. precondition">
+  <proof prover="1"><result status="valid" time="0.00" steps="10"/></proof>
   </goal>
-  <goal name="WP_parameter bfs.3" expl="3. exceptional postcondition">
-  <proof prover="9"><result status="valid" time="0.01" steps="12"/></proof>
+  <goal name="VC bfs.3" expl="3. exceptional postcondition">
+  <proof prover="1"><result status="valid" time="0.01" steps="22"/></proof>
   </goal>
-  <goal name="WP_parameter bfs.4" expl="4. precondition">
+  <goal name="VC bfs.4" expl="4. precondition">
   <transf name="split_goal_wp">
-   <goal name="WP_parameter bfs.4.1" expl="1. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.05" steps="202"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.4.2" expl="2. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.01" steps="12"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.4.3" expl="3. VC for bfs">
-   <transf name="inline_goal">
-    <goal name="WP_parameter bfs.4.3.1" expl="1. VC for bfs">
-    <proof prover="9"><result status="valid" time="0.02" steps="61"/></proof>
+   <goal name="VC bfs.4.1" expl="1. VC for bfs">
+   <proof prover="1"><result status="valid" time="0.02" steps="98"/></proof>
+   </goal>
+   <goal name="VC bfs.4.2" expl="2. VC for bfs">
+   <proof prover="1"><result status="valid" time="0.01" steps="22"/></proof>
+   </goal>
+   <goal name="VC bfs.4.3" expl="3. VC for bfs">
+   <transf name="introduce_premises">
+    <goal name="VC bfs.4.3.1" expl="1. VC for bfs">
+    <transf name="inline_goal">
+     <goal name="VC bfs.4.3.1.1" expl="1. VC for bfs">
+     <proof prover="2"><result status="valid" time="0.26"/></proof>
+     </goal>
+    </transf>
     </goal>
    </transf>
    </goal>
   </transf>
   </goal>
-  <goal name="WP_parameter bfs.5" expl="5. loop invariant preservation">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter bfs.5.1" expl="1. VC for bfs">
-   <transf name="inline_goal">
-    <goal name="WP_parameter bfs.5.1.1" expl="1. VC for bfs">
-    <transf name="split_goal_wp">
-     <goal name="WP_parameter bfs.5.1.1.1" expl="1. VC for bfs">
-     <proof prover="9"><result status="valid" time="0.02" steps="17"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.2" expl="2. VC for bfs">
-     <proof prover="9"><result status="valid" time="0.02" steps="19"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.3" expl="3. VC for bfs">
-     <proof prover="3"><result status="valid" time="0.06"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.4" expl="4. VC for bfs">
-     <proof prover="3"><result status="valid" time="0.04"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.5" expl="5. VC for bfs">
-     <proof prover="4" timelimit="5"><result status="valid" time="2.24"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.6" expl="6. VC for bfs">
-     <proof prover="9"><result status="valid" time="0.17" steps="426"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.7" expl="7. VC for bfs">
-     <proof prover="9"><result status="valid" time="0.05" steps="45"/></proof>
-     </goal>
-     <goal name="WP_parameter bfs.5.1.1.8" expl="8. VC for bfs">
-     <proof prover="9"><result status="valid" time="0.08" steps="28"/></proof>
+  <goal name="VC bfs.5" expl="5. loop invariant preservation" expanded="true">
+  <transf name="split_goal_wp" expanded="true">
+   <goal name="VC bfs.5.1" expl="1. VC for bfs" expanded="true">
+   <transf name="introduce_premises" expanded="true">
+    <goal name="VC bfs.5.1.1" expl="1. VC for bfs" expanded="true">
+    <transf name="inline_goal" expanded="true">
+     <goal name="VC bfs.5.1.1.1" expl="1. VC for bfs" expanded="true">
+     <transf name="split_goal_wp" expanded="true">
+      <goal name="VC bfs.5.1.1.1.1" expl="1. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.01" steps="23"/></proof>
+      </goal>
+      <goal name="VC bfs.5.1.1.1.2" expl="2. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.01" steps="34"/></proof>
+      </goal>
+      <goal name="VC bfs.5.1.1.1.3" expl="3. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.02" steps="89"/></proof>
+      </goal>
+      <goal name="VC bfs.5.1.1.1.4" expl="4. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.02" steps="70"/></proof>
+      </goal>
+      <goal name="VC bfs.5.1.1.1.5" expl="5. VC for bfs" expanded="true">
+      </goal>
+      <goal name="VC bfs.5.1.1.1.6" expl="6. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.02" steps="98"/></proof>
+      </goal>
+      <goal name="VC bfs.5.1.1.1.7" expl="7. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.00" steps="38"/></proof>
+      </goal>
+      <goal name="VC bfs.5.1.1.1.8" expl="8. VC for bfs">
+      <proof prover="1"><result status="valid" time="0.02" steps="80"/></proof>
+      </goal>
+     </transf>
      </goal>
     </transf>
     </goal>
    </transf>
    </goal>
-   <goal name="WP_parameter bfs.5.2" expl="2. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.02" steps="27"/></proof>
+   <goal name="VC bfs.5.2" expl="2. VC for bfs">
+   <proof prover="1"><result status="valid" time="0.00" steps="23"/></proof>
    </goal>
-   <goal name="WP_parameter bfs.5.3" expl="3. VC for bfs">
-   <proof prover="5"><result status="valid" time="2.34"/></proof>
+   <goal name="VC bfs.5.3" expl="3. VC for bfs">
+   <transf name="introduce_premises">
+    <goal name="VC bfs.5.3.1" expl="1. VC for bfs">
+    <transf name="inline_goal">
+     <goal name="VC bfs.5.3.1.1" expl="1. VC for bfs">
+     <proof prover="2"><result status="valid" time="0.29"/></proof>
+     <proof prover="5"><result status="valid" time="0.05"/></proof>
+     </goal>
+    </transf>
+    </goal>
+   </transf>
    </goal>
-   <goal name="WP_parameter bfs.5.4" expl="4. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.01" steps="17"/></proof>
+   <goal name="VC bfs.5.4" expl="4. VC for bfs">
+   <proof prover="1"><result status="valid" time="0.01" steps="22"/></proof>
    </goal>
   </transf>
   </goal>
-  <goal name="WP_parameter bfs.6" expl="6. loop invariant preservation">
-  <transf name="split_goal_wp">
-   <goal name="WP_parameter bfs.6.1" expl="1. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.00" steps="14"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.6.2" expl="2. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.01" steps="14"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.6.3" expl="3. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.02" steps="28"/></proof>
-   </goal>
-   <goal name="WP_parameter bfs.6.4" expl="4. VC for bfs">
-   <proof prover="9"><result status="valid" time="0.01" steps="14"/></proof>
-   </goal>
-  </transf>
+  <goal name="VC bfs.6" expl="6. loop invariant preservation">
+  <proof prover="1"><result status="valid" time="0.01" steps="34"/></proof>
   </goal>
-  <goal name="WP_parameter bfs.7" expl="7. assertion">
-  <proof prover="4" timelimit="5"><result status="valid" time="0.01"/></proof>
-  <proof prover="9" timelimit="5" memlimit="1000"><result status="valid" time="0.02" steps="14"/></proof>
+  <goal name="VC bfs.7" expl="7. assertion">
+  <proof prover="1"><result status="valid" time="0.02" steps="83"/></proof>
   </goal>
-  <goal name="WP_parameter bfs.8" expl="8. postcondition">
-  <proof prover="0" edited="vstte12_bfs_WP_BFS_WP_parameter_bfs_1.v"><result status="valid" time="0.47"/></proof>
+  <goal name="VC bfs.8" expl="8. postcondition" expanded="true">
   </goal>
  </transf>
  </goal>
diff --git a/examples/vstte12_bfs/why3shapes.gz b/examples/vstte12_bfs/why3shapes.gz
index 5a18465596582dbcbf3800c9c272560017738645..eae33b659e5481d17246563456f89a96497429e5 100644
GIT binary patch
literal 3082
zcmb2|=3oGW|8HeZ_eop6d$<0D<$KpF%~KlAG96T6`!#9jPpbuS63m`fe?2Dr{hfL<
zFZ$`Ew`Ip{XZrn`6tYrf(xcfzcNKSam<1kM#5Dbs;gyJ>4a?lTLe^FMT&cG|_V4qv
zPU@v+=l^_ozBTHA)A{tHs{?o$qPll(STu#}cR&x<xs9A>qm0+Y?%yjp?R{LyZ>7u6
zKL6~QyVBJ0LTI{Z@(C-aO%rYixxFoAmf&Y9<KA3-@a*ONVrB>b%(9=>&wcoNd{ESj
z*Rm${0#a|Eo!rtocYo|=CkaLU&yhvDW-)Xz9h>E}@nooUq@1Xw{N1Zus%rvgZSSu!
z;r^R<{EF^GtAk%VK7O8Q<i{@E#dp-*Ku=mY*F?%Dc$4Ki!55}XyIm8+pWXesv*^a9
zM4>gRlbZXsNqp-Qna<;Cc`iX#a>K!dsO0kOH(QSSap!Eb_l<~tGvmRE8*WSiVWJur
zpC$05%ST)Zf11M?^H8er@ch;&=f>77h8es$-+xqY7Tztno%`V-os`7NuSWxyOo-X^
zsb7MBQBv-Pyp$X_4LNg;wf|;(JG#zdPh3-fc46=Rw=bkV1c$1woF&m!to2Jod9w49
zHJdj}D?Z5lvtvVVT7Ko5Z8qDaZDaTUyev?go#Xi8-in3|VR2>wjN2N_+8ADaoE-Hw
zV9Fe>NY@8*PfzSMZ&;d?n7i1!V(X9hp?i1kUUiyZ{@;&~eYQH5wL5nHFAD$hIaYGR
z|8KJoWX0utmSI^hQ1)N--t_ifvEFNYr|Q<kN<Nyr;Ni|2Z@>PQ{k>+#1zp3+$n5q-
zwV%v3yBl9yeNOf7+qMby#gBIH`Ex}6Sb+87y4}xwgYI(LmhE6RVbE)cs=KiBPeJ<U
z#~ixn4^Nou?`=L`?$q-3>Vrq;d}cb6r*WqG^PQA=5vPA|-6~OePvYE*-?_glxq?2&
z{;c@CwI}SPo>}*wntx#|MgQG@{`mQ@p8LLCeE$5|Q@1bXe15YjKlQ!;>3j2ySpUzR
zrqHo`%53J(cbS~LD=d61wkBAYTo&BLKe^HRr=R25>O&Sh-mBBRqt<T!^8D;w=biOG
zl7&xxz2$UHp}?-#?e~)43q4B(RwT$sabDD1{;Kos)%Mx5&xbQjc|YyXOUHTB_|paN
zy}BSA@?ySzXV~^bN1q(fiR@Z=szZfm;`UY#r<|3OF8+M-dg>YR#ph19KRvsA;zj$_
z><!l@JaDgS;Pw(I*{xmc7|nF@o5IgW#z!I+&6s2qnSJd+2w!$|)s`hOlP*-p_Z>6Y
z5#zJ@b;MHtqb9~P%~Kj?FIZOY=v&@2%TC}*g7lRyCM#YluCQG%wL9#=yY#^1obp!j
z;N)Nvr=lPSr)fr~#59))Wd*+UG4yQOFD{hwvv%k2Q_bnGPCgYdI=Sw=7*CJHU2cK?
zRPT5b_l$$#izTIf{rAT0yZGhROm2x@Ey074=Ym+LPtkmRK;p)8t^b*`o&+B6ZQHN+
zemcLZx$?`?cjuniA}N{m+I6;=*1ua51?zLKZP??#!N+y$tnG1o9<kj2e7HQ|c;zys
zryMbs$2(5(@ASFU%JXbe_L*NA@z;(Q3h%l8*7EMPGgst3o%_&s>h;NX_XFq8c{`r@
z9rLT!=+>p1$$xHtpWS@q<n;UM@?mQvR$JUZ-E+24=()+9?KaPZ7u`79{*`f}k2&}6
zcOO&on~MLH70X-~ydtJow6Ct^Ss3eGJI^agamtJL)}FDx6Z<mKpQrkPZT^>I{*rf_
zt*^e|eIePF!IPmN?KrX1G%~lS<5tGgHN2CVHxxHS=a-yOs|Yx^(e0Gpkrbyu!5Y3*
z%r*IoUllHvJv;wA!`{<ey}T=G4HmL(X$@U<;)vWM;g0vkHP2#~Ea(b7n57xdRi!H0
z8)6){*zA~X>!(h(H_}^E)DN~E5-Bc|OJ4h;=-Vw7>6_kXU4l*8duo@@xuCK9$Df}*
zUJ0i-b*&obJIrh9j&olc{LypOBhE=|VdooIUhQtqOSjWrvv>J~rgFc<y`B?!S1k%@
zeq@+<YWK=~Y0HLAeVcQyf9g~PcCT?-n6gM&pOg2NkJKb1!z;I*zGAhxsdN2NsfJo=
zd<%!yt%++ddOp-XHTjG1m%``q>8cv1RioJ$-F9UyPfF8LaxBnW(tP3EhY!Z<M0IAK
zQk%qT?I8DtT_Et)x4sQ^B{H)`O&B_FDDZ}Nw)vQ8P3-EN{KMe0x!AJz@nwEFx87X*
zqhne4{@i0G%fg_e7TOm#h8&SvwNlb)1)t?gfz_7VC+t}ebF4Jw`?Y5ovXw4I`msmP
z?`5c#)VgP#v7@0Ydv5naMMjoj=F`f|p{{l*T>>v&eLnm5@V7hP+T&XIs($ulUA7Lc
z{h4+7v$lAE^vT>g%NOz<5|7UP;1yh8C9QTQD*ye3<h}9x?tlHvBlWS)ezriG&UD{9
zvQgH4cRu#L&v?t!R+Y1w|LyYE?>@YoeY=+DiqMLynOx4lABjux1-$qz(so(oU2?`P
zwJ&DYaTiwIU$oP^Wtpz?G{&>l%Tx|qM>E}>yD0y7@HvrL*Q(zomh7;+vuD2c;&-~Q
zPh4^HZb@HTnV~FF^2Yg0o8PSuatX7XCT=X+y~}KWo~}@y`r+kzmk)n4vhC5o?EL$V
zaO4hIe~Z-Ow|s|Z6mMI9zP9vT_UFVGCi%i2ub6HR6W;JOl>6<kEnnw4UjHe}GOtSW
z{I1(hZ`pj__uPGZ{!;Ae&36MY%U*T1p4{iw%4H=mL2<cPr|Rq#-R-CHif(V*#qhuG
z*`@VIqQm02{Ev&3@|_IcxG~Add16mruw}_g*>(Tzyjz$jJ`I}o!+$bo!nSG5fnl9V
zjSLIsex4a~iDSw7Q`<xA)^EDXUwt$CxO)8hJ?~f8S5)kt%QIiA;Lx@MoR68F?>w4c
zr~7enxE4dTMvu!e>6OQ3PCco2_`-54qmz?gGQ9a%G)LE2KUR#>UQt$pS?=ANxLxyX
zix2!?{&J?TM3=kl7B5EAbcYg+&aI7Ed%}HNKXYpx)_+!VAoBfW{!<!m`G#&ieMP=9
zp}GgRoVxH?e7#V8rcggu?54x-6TCQiPA%AESp8h}j7n&!_Q(A)DRoR=e;i%JEcTRX
z(=?qctFsDzYz*2GRK2jTHO6k0oPWOkPqXF_ZFk}9R)ZLWSu!R8OzB;zd>dU$KFq85
zn^<c7Be&T5`2BAMrETuz^Y1TfNLN*u`DXJK_s$rP!}=MUHkG}QF1>Yi@pt9kZH@0&
z-CnVO?c3FIb=L&><}6SAZ?ks(CfTD8q?5n2pSzr~;rX`HJTd=m*2>D=np9o<pv>l}
zi2t#<jofR$@n1Q{p0Yf01N($Jrt>8)9(+yz>Z6u@GGxta5l%^q#_(OgW+@3u`Ky1r
zHvhCzSlpwlO5b#x{zi!{oa4K6#iIoqw2s6%GKNjsslLYUee{v<+q=AUwq$mkIyLLm
zu8J;8s{<@u25p<fSL<JQuiR+1YFU5Lm4uzS%*|K*Px5bJ&i$ofEj!J3^{m{et7l%R
zzx%DSGgEx-?c2xWUoJj!{F~DpqhEXMPNi^H3)FYdQ;gPI6h6W0($+~+I2KDi<k@iS
zc1&{1iAjNuTTW#jI@6UaJFD;X!KBYA@1K0A<~S2p>F>8wW{#OAgL8nBMO)332h6dP
zSz|SBdd*vvo#4s5*yyl)n8d%nCe`_U!M|JTPI^u8n%X12$ZTK0q&bsgeGbX4E!pUQ
zs)4`U%c<3C>5dSCgtI3Ws+5^c*5#UXbYuAqr=NXtp4q(Xt=c(M&C}Q?T}~GWOqt62
z;#R`0l5!Q#r46@k$#k3UY7(_foN9IG+MI~1r>oU&uHCdwLo|tN(bkp+E)&eIE!o6u
zt`&3c<m33@3D-rQ99^m)Wh&+uxas4H6A}!C6At@dR8imPwOn|)r#jce>1jgiOJ8Nr
zwdytud)lyd$&=8Tiu*NBb^E#mAB^62gEQ*dOjXIi9>a+nPiT3YthuGp9{0HJ&F^ae
z3lnTshn!$>4pM9|zUQ8B(sfDR_J!Xz^<Qng>Am^qb%P&LZ0TAXiv6a(+98tb`DW6a
z55Xp0XUskZpYQ%%W4Ee~J?c;x+a<}i&tErQot?f(v1aSSmuD|Gwr!bzwJj%2oi!%V
zQ%P!}Vc#4-*FX=BX)n6oA5FXVH{-I~>p=d$*~zzDRUhZNdM}uxdosC8NpbqpTV;yr
g(LGY;i+guJT3^3o!<Y4{YyLAQzfHb0IfQ`$0N3aTf&c&j

literal 4366
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

-- 
GitLab