diff --git a/dolmen b/dolmen
index 6dd449152f9dc61e281b396fbd7aa3ebf6b0ea4d..57c66b6b6de28af0a7b9d0fe429bfacdca05f8d9 160000
--- a/dolmen
+++ b/dolmen
@@ -1 +1 @@
-Subproject commit 6dd449152f9dc61e281b396fbd7aa3ebf6b0ea4d
+Subproject commit 57c66b6b6de28af0a7b9d0fe429bfacdca05f8d9
diff --git a/src/bin/main.ml b/src/bin/main.ml
index 71a2d564492aa6d2957d5c72c940269db3d8f80f..d4f909723946a673a18f6c218200b5bb0898d28d 100644
--- a/src/bin/main.ml
+++ b/src/bin/main.ml
@@ -1,13 +1,13 @@
 (* This file is free software, copied from dolmen. See file "LICENSE" for more information *)
 
-let handle_exn st exn =
+let handle_exn st _bt exn =
   let _st = Errors.exn st exn in
   exit 125
 
 let finally st e =
   match e with
   | None -> st
-  | Some exn -> handle_exn st exn
+  | Some (bt,exn) -> handle_exn st bt exn
 
 let debug_pre_pipe st c =
   if st.Loop.State.debug then
@@ -73,7 +73,9 @@ let () =
   in
   let st, g =
     try Loop.Parser.parse [] st
-    with exn -> handle_exn st exn
+    with exn ->
+      let bt = Printexc.get_raw_backtrace () in
+      handle_exn st bt exn
   in
   let st =
     let open Loop.Pipeline in
diff --git a/src_colibri2/bin/main.ml b/src_colibri2/bin/main.ml
index 5dcb50293cff7fcb80e4ca4798d0309312b49d2b..c4c384b08591bc028549d22c03a24ceda92b5767 100644
--- a/src_colibri2/bin/main.ml
+++ b/src_colibri2/bin/main.ml
@@ -46,7 +46,9 @@ let () =
     | `Error `Parse | `Error `Term | `Error `Exn -> exit 2
     | `Ok opt -> opt
   in
-  Colibri2_solver.Input.read ?limit:step_limit ~show_steps
-    ~set_true:Colibri2_theories_bool.Boolean.set_true
-    ~handle_exn:Colibri2_solver.Input.handle_exn_with_exit st ~check_status
-    ~show_check_sat_result
+  try
+    Colibri2_solver.Input.read ?limit:step_limit ~show_steps
+      ~set_true:Colibri2_theories_bool.Boolean.set_true
+      ~handle_exn:Colibri2_solver.Input.handle_exn_with_exit st ~check_status
+      ~show_check_sat_result
+  with _exn -> Format.eprintf "here@."
diff --git a/src_colibri2/popop_lib/debug.ml b/src_colibri2/popop_lib/debug.ml
index 61ff438d466a846b4c9470ac86f843abf3f44c94..136674beb5291efa6cfbbfbd9b214a24f7e4d359 100644
--- a/src_colibri2/popop_lib/debug.ml
+++ b/src_colibri2/popop_lib/debug.ml
@@ -113,7 +113,7 @@ let real_dprintf ?nobox ?ct s =
        if Option.is_some ct then
          let b = Base.Backtrace.get ~at_most_num_frames:7 () in
          let l = match (Base.Backtrace.to_string_list b) with
-         | _::_::_::l -> l
+         | _::_::l -> l
          | l -> l
          in Fmt.(pf !formatter "@.%a" (vbox ~indent:1 (list ~sep:cut (box lines))) l)
     )
diff --git a/src_colibri2/solver/input.ml b/src_colibri2/solver/input.ml
index 12ade1adc93c3b114b8bcec44dad32e5d809faff..d3ed0f98a08990a1001f6f656f47935a00e75888 100644
--- a/src_colibri2/solver/input.ml
+++ b/src_colibri2/solver/input.ml
@@ -175,19 +175,21 @@ let print_exn st = function
   | e ->
       State.error st "@[<hv>Unhandled exception:@ %s@]" (Printexc.to_string e)
 
-let handle_exn_with_exit st exn =
-  if st.State.debug then Format.eprintf "%s@." (Printexc.to_string exn);
+let handle_exn_with_exit st bt exn =
+  if st.State.debug then (
+    Printexc.print_raw_backtrace stderr bt;
+    Format.eprintf "%s@." (Printexc.to_string exn));
   let () = print_exn st exn in
   exit 2
 
-let handle_exn_with_error _ exn = raise exn
+let handle_exn_with_error _ bt exn = Printexc.raise_with_backtrace exn bt
 
 let finally ~handle_exn st e =
   match (st.State.solve_state.state, e) with
   | `StepLimitReached, None -> raise Scheduler.ReachStepLimit
   | _, None -> st
-  | _, Some exn ->
-      handle_exn st exn;
+  | _, Some (bt, exn) ->
+      handle_exn st bt exn;
       assert false
 
 let debug_pre_pipe st c =
@@ -370,7 +372,8 @@ let read ?show_check_sat_result ?show_steps ?limit ?check_status ~set_true
   let st, g =
     try Parser.parse [] st
     with exn ->
-      handle_exn st exn;
+      let bt = Printexc.get_raw_backtrace () in
+      handle_exn st bt exn;
       assert false
   in
   let st =
diff --git a/src_colibri2/tests/solve/all/sat/dune.inc b/src_colibri2/tests/solve/all/sat/dune.inc
index aca73444f0d4e5534f76b17b6ead8815ff6700e6..4e0cd3e0bba21ec1769c54205e80729a14233335 100644
--- a/src_colibri2/tests/solve/all/sat/dune.inc
+++ b/src_colibri2/tests/solve/all/sat/dune.inc
@@ -4,3 +4,6 @@
 (rule (alias runtest) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status sat 
 --dont-print-result %{dep:div_abs2.smt2})))
 (rule (alias runtest-learning) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:div_abs2.smt2})))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status sat 
+--dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status sat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_2.psmt2})))
diff --git a/src_colibri2/tests/solve/all/sat/union-Union-is_singletonqtvc_2.psmt2 b/src_colibri2/tests/solve/all/sat/union-Union-is_singletonqtvc_2.psmt2
new file mode 100644
index 0000000000000000000000000000000000000000..6ee8d7ada9f5043db5999639b83993bf5b13c754
--- /dev/null
+++ b/src_colibri2/tests/solve/all/sat/union-Union-is_singletonqtvc_2.psmt2
@@ -0,0 +1,10 @@
+;; produced by local colibri2.drv ;;
+(set-logic ALL)
+(set-info :smt-lib-version 2.6)
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(assert (>= 0.0 0.0))
+
+
+(check-sat)
diff --git a/src_colibri2/tests/solve/all/unsat/dune.inc b/src_colibri2/tests/solve/all/unsat/dune.inc
index 43d61242135cc4bfdaf88344c3d912ba3083c383..857492e6d430d352e4e82554a51515d413431615 100644
--- a/src_colibri2/tests/solve/all/unsat/dune.inc
+++ b/src_colibri2/tests/solve/all/unsat/dune.inc
@@ -17,5 +17,8 @@
 --dont-print-result %{dep:mul_abs.smt2})))
 (rule (alias runtest-learning) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:mul_abs.smt2})))
 (rule (alias runtest) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status unsat 
+--dont-print-result %{dep:union-Union-is_singletonqtvc_1.psmt2})))
+(rule (alias runtest-learning) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-is_singletonqtvc_1.psmt2})))
+(rule (alias runtest) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status unsat 
 --dont-print-result %{dep:union-Union-length0_positiveqtvc_1.psmt2})))
 (rule (alias runtest-learning) (action (run %{bin:colibri2} --size=15M --time=30s --max-steps 3500 --check-status unsat --learning --dont-print-result %{dep:union-Union-length0_positiveqtvc_1.psmt2})))
diff --git a/src_colibri2/tests/solve/all/unsat/union-Union-is_singletonqtvc_1.psmt2 b/src_colibri2/tests/solve/all/unsat/union-Union-is_singletonqtvc_1.psmt2
new file mode 100644
index 0000000000000000000000000000000000000000..1a5337dd9031e64d714535fbafc36a2c602b36b9
--- /dev/null
+++ b/src_colibri2/tests/solve/all/unsat/union-Union-is_singletonqtvc_1.psmt2
@@ -0,0 +1,89 @@
+;; produced by local colibri2.drv ;;
+(set-logic ALL)
+(set-info :smt-lib-version 2.6)
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+(declare-fun prime_to_one_another (Int Int) Bool)
+
+(declare-sort t 0)
+
+(declare-fun num (t) Int)
+
+(declare-fun den (t) Int)
+
+;; t'invariant
+  (assert
+  (forall ((self t))
+  (! (and (< 0 (den self)) (prime_to_one_another (num self) (den self))) :pattern (
+  (den self)) :pattern ((num self)) )))
+
+
+(define-fun real ((q t)) Real (/ (to_real (num q)) (to_real (den q))))
+
+(declare-fun make (Int Int) t)
+
+;; make_def
+  (assert
+  (forall ((num1 Int) (den1 Int))
+  (=> (not (= den1 0))
+  (= (real (make num1 den1)) (/ (to_real num1) (to_real den1))))))
+
+(declare-datatypes ((t2 0))
+(((Strict) (Large))))
+(declare-datatypes ((t0 0))
+(((Singleton (Singleton_proj_1 t)(Singleton_proj_2 t0))
+ (Inter
+ (Inter_proj_1 t)(Inter_proj_2 t2)(Inter_proj_3 t)(Inter_proj_4 t2)(Inter_proj_5 t0))
+ (FiniteInf (FiniteInf_proj_1 t)(FiniteInf_proj_2 t2)) (End))))
+(declare-datatypes ((t3 0))
+(((InfFinite (InfFinite_proj_1 t)(InfFinite_proj_2 t2)(InfFinite_proj_3 t0))
+ (Finite (Finite_proj_1 t0)) (Inf))))
+(declare-fun length0 (t0) Int)
+
+;; length0'def
+  (assert
+  (forall ((l t0))
+  (ite ((_ is Singleton) l) (let (
+                            (x (Singleton_proj_2 l))) (= (length0 l) (+ 
+                            (length0 x) 1))) (ite ((_ is Inter) l) (let (   
+                                                                   (x1 (Inter_proj_5 l))) (= 
+                                                                   (length0
+                                                                   l) (+ 
+                                                                   (length0
+                                                                   x1) 2))) 
+                                             (ite ((_ is FiniteInf) l) (= 
+                                             (length0 l) 1) (= (length0 l) 0))))))
+
+;; length0_positive
+  (assert (forall ((l t0)) (>= (length0 l) 0)))
+
+(define-fun length ((l t3)) Int (ite ((_ is InfFinite) l) (let ( 
+                                                          (x8 (InfFinite_proj_3 l))) (+ 
+                                                          (length0 x8) 1)) 
+                                (ite ((_ is Finite) l) (let ((x9 (Finite_proj_1 l))) 
+                                                       (length0 x9)) 0)))
+
+(declare-sort tqt 0)
+
+(declare-fun a12 (tqt) t3)
+
+(declare-fun u () tqt)
+
+(declare-fun x28 () t)
+
+(declare-fun x29 () t2)
+
+(declare-fun x30 () t)
+
+(declare-fun x31 () t2)
+
+(declare-fun x32 () t0)
+
+;; H
+  (assert (= (a12 u) (Finite (Inter x28 x29 x30 x31 x32))))
+
+(assert
+;; is_singletonqtvc
+ ;; File "colibrics/src_common/union.mlw", assert in is singleton Finite Inter case
+  (not (>= (length (a12 u)) 2)))
+(check-sat)
diff --git a/src_colibri2/theories/LRA/dom_interval.ml b/src_colibri2/theories/LRA/dom_interval.ml
index 60cbf361ba62c7852ee914f5eb11687dcbf1dcc9..fc74437694abef8d76ba755998606eecbc69df50 100644
--- a/src_colibri2/theories/LRA/dom_interval.ml
+++ b/src_colibri2/theories/LRA/dom_interval.ml
@@ -214,8 +214,8 @@ let converter d (f : Ground.t) =
       cmp
         (function
           | Uncomparable | Le -> None
-          | Eq | Lt -> Some false
-          | Ge | Gt -> Some true)
+          | Lt -> Some false
+          | Eq | Ge | Gt -> Some true)
         `Ge a b
   | { app = { builtin = Expr.Gt }; tyargs = []; args; _ } ->
       let a, b = IArray.extract2_exn args in
diff --git a/src_colibri2/theories/LRA/realValue.ml b/src_colibri2/theories/LRA/realValue.ml
index ff7d8c648b2490e41edecd3177642249a2e764e1..5a9a95d3f6ad0676e3f4ac1771007e4883932c64 100644
--- a/src_colibri2/theories/LRA/realValue.ml
+++ b/src_colibri2/theories/LRA/realValue.ml
@@ -345,3 +345,9 @@ let init env =
   Ground.register_converter env converter;
   init_ty env;
   Check.init env
+
+let () =
+  Colibri2_theories_quantifiers.Trigger.register_builtin_skipped_for_trigger
+    (function
+    | Expr.Leq | Expr.Geq | Expr.Lt | Expr.Gt -> true
+    | _ -> false)
diff --git a/src_colibri2/theories/quantifier/trigger.ml b/src_colibri2/theories/quantifier/trigger.ml
index a160ee26863b61d7141519e475b1fb7442bd7eab..d36a61b665743f0d9ca689b985038be536d8cbdf 100644
--- a/src_colibri2/theories/quantifier/trigger.ml
+++ b/src_colibri2/theories/quantifier/trigger.ml
@@ -41,6 +41,11 @@ end
 include T
 include Popop_stdlib.MkDatatype (T)
 
+let register_builtin_skipped_for_trigger, builtin_skipped_for_trigger =
+  let q = Base.Queue.create () in
+  ( Base.Queue.enqueue q,
+    fun builtin -> Base.Queue.exists q ~f:(fun p -> p builtin) )
+
 let compute_top_triggers (cq : Ground.ClosedQuantifier.t) =
   let cq' = Ground.ClosedQuantifier.sem cq in
   let tyvs = cq'.ty_vars in
@@ -65,6 +70,9 @@ let compute_top_triggers (cq : Ground.ClosedQuantifier.t) =
           _,
           tl ) ->
         List.fold_left aux pats tl
+    | Expr.App ({ term_descr = Cst { builtin; _ }; _ }, _, tl)
+      when builtin_skipped_for_trigger builtin ->
+        List.fold_left aux pats tl
     | _ -> t :: pats
   in
   let pats = CCList.sort_uniq ~cmp:Expr.Term.compare (aux [] t) in
diff --git a/src_colibri2/theories/quantifier/trigger.mli b/src_colibri2/theories/quantifier/trigger.mli
index e0f388774b8ba321a6f11e5196d15d0b553e4380..990e197025200839e379becb2926cbb3356d0c11 100644
--- a/src_colibri2/theories/quantifier/trigger.mli
+++ b/src_colibri2/theories/quantifier/trigger.mli
@@ -64,3 +64,7 @@ val instantiate : Egraph.wt -> t -> Ground.Subst.t -> unit
 val match_ : Egraph.wt -> t -> Node.t -> unit
 (** [match_ d tri n] match the pattern of [tri] with [n] and instantiate [tri]
     with the resulting substitutions *)
+
+val register_builtin_skipped_for_trigger : (Expr.builtin -> bool) -> unit
+(** The registered function tells when an application should be skipped when
+   looking for patterns in a term (top down) *)
diff --git a/src_common/union.mlw b/src_common/union.mlw
index c3ac49fb131bfd15d64c8a83f295fd8fdeb23f53..1a023d3f9cbc816eb87a47f8d0caa2f619f6ce91 100644
--- a/src_common/union.mlw
+++ b/src_common/union.mlw
@@ -137,10 +137,17 @@ module Union
       | Finite (Singleton q End) -> (Some q,0., 1.)
       | Finite End -> absurd
       | Finite (Inter q b q' b' _) ->
+        assert { length u.a >= 2 };
+        assert { nth 0 u.a = q };
+        assert { nth 1 u.a = q' };
+        assert { (Q.real q) <. (Q.real q') };
         (None, ghost (Q.real q)*.0.75+.(Q.real q')*.0.25, ghost (Q.real q)*.0.25+.(Q.real q')*.0.75)
       | Finite (FiniteInf q _) -> (None,ghost (Q.real q)+.1.,ghost (Q.real q)+.2.)
-      | Finite (Singleton q (Singleton q' _)) -> (None,ghost (Q.real q), ghost (Q.real q'))
+      | Finite (Singleton q (Singleton q' _)) ->
+        assert { (Q.real q) <. (Q.real q') };
+        (None,ghost (Q.real q), ghost (Q.real q'))
       | Finite (Singleton _ (Inter q b q' b' _)) ->
+        assert { (Q.real q) <. (Q.real q') };
         (None, ghost (Q.real q)*.0.75+.(Q.real q')*.0.25, ghost (Q.real q)*.0.25+.(Q.real q')*.0.75)
       | Finite (Singleton _ (FiniteInf q _)) -> (None,ghost (Q.real q)+.1.,ghost (Q.real q)+.2.)
       end
diff --git a/src_common/union/why3session.xml b/src_common/union/why3session.xml
index dc269199b6f0a4a57e3d567552a063f1940e07b6..bead75ff46fa09799b93f9caa03223cc37813917 100644
--- a/src_common/union/why3session.xml
+++ b/src_common/union/why3session.xml
@@ -23,103 +23,120 @@
  <proof prover="3"><result status="valid" time="2.82"/></proof>
  </goal>
  <goal name="is_singleton&#39;vc" expl="VC for is_singleton">
- <proof prover="3"><result status="highfailure" time="0.02"/></proof>
+ <proof prover="3" obsolete="true"><result status="highfailure" time="0.02"/></proof>
  <transf name="split_vc" >
-  <goal name="is_singleton&#39;vc.0" expl="unreachable point" proved="true">
+  <goal name="is_singleton&#39;vc.0" expl="assertion">
+  <proof prover="3"><result status="timeout" time="5.00"/></proof>
+  </goal>
+  <goal name="is_singleton&#39;vc.1" expl="assertion">
+  <proof prover="3"><result status="timeout" time="5.00"/></proof>
+  </goal>
+  <goal name="is_singleton&#39;vc.2" expl="unreachable point" proved="true">
   <proof prover="3"><result status="valid" time="0.03"/></proof>
   </goal>
-  <goal name="is_singleton&#39;vc.1" expl="postcondition">
-  <proof prover="3"><result status="highfailure" time="0.05"/></proof>
+  <goal name="is_singleton&#39;vc.3" expl="assertion">
+  </goal>
+  <goal name="is_singleton&#39;vc.4" expl="assertion" proved="true">
+  <proof prover="3"><result status="valid" time="0.01"/></proof>
+  </goal>
+  <goal name="is_singleton&#39;vc.5" expl="assertion" proved="true">
+  <proof prover="3"><result status="valid" time="0.01"/></proof>
+  </goal>
+  <goal name="is_singleton&#39;vc.6" expl="assertion">
+  <proof prover="3"><result status="timeout" time="5.00"/></proof>
+  </goal>
+  <goal name="is_singleton&#39;vc.7" expl="postcondition">
+  <proof prover="3" obsolete="true"><result status="highfailure" time="0.05"/></proof>
   <transf name="split_vc" >
-   <goal name="is_singleton&#39;vc.1.0" expl="postcondition" proved="true">
+   <goal name="is_singleton&#39;vc.7.0" expl="postcondition" proved="true">
    <proof prover="3"><result status="valid" time="0.57"/></proof>
    </goal>
-   <goal name="is_singleton&#39;vc.1.1" expl="postcondition" proved="true">
+   <goal name="is_singleton&#39;vc.7.1" expl="postcondition" proved="true">
    <proof prover="3"><result status="valid" time="0.08"/></proof>
    </goal>
-   <goal name="is_singleton&#39;vc.1.2" expl="postcondition">
-   <proof prover="3"><result status="timeout" time="5.00"/></proof>
-   <transf name="split_vc" >
-    <goal name="is_singleton&#39;vc.1.2.0" expl="postcondition" proved="true">
+   <goal name="is_singleton&#39;vc.7.2" expl="postcondition" proved="true">
+   <proof prover="3" obsolete="true"><result status="timeout" time="5.00"/></proof>
+   <transf name="split_vc" proved="true" >
+    <goal name="is_singleton&#39;vc.7.2.0" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.04"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.1" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.2.1" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.04"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.2" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.2.2" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.02"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.3" expl="postcondition">
-    <proof prover="3"><result status="timeout" time="5.00"/></proof>
+    <goal name="is_singleton&#39;vc.7.2.3" expl="postcondition" proved="true">
+    <proof prover="3"><result status="valid" time="0.02"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.4" expl="postcondition">
-    <proof prover="3"><result status="timeout" time="5.00"/></proof>
+    <goal name="is_singleton&#39;vc.7.2.4" expl="postcondition" proved="true">
+    <proof prover="3"><result status="valid" time="0.02"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.5" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.2.5" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.02"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.6" expl="postcondition">
-    <proof prover="3"><result status="timeout" time="5.00"/></proof>
+    <goal name="is_singleton&#39;vc.7.2.6" expl="postcondition" proved="true">
+    <proof prover="3"><result status="valid" time="0.01"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.2.7" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.2.7" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.01"/></proof>
     </goal>
    </transf>
    </goal>
-   <goal name="is_singleton&#39;vc.1.3" expl="postcondition">
-   <proof prover="3"><result status="unknown" time="0.01"/></proof>
+   <goal name="is_singleton&#39;vc.7.3" expl="postcondition">
+   <proof prover="3" obsolete="true"><result status="unknown" time="0.01"/></proof>
    <transf name="split_vc" >
-    <goal name="is_singleton&#39;vc.1.3.0" expl="postcondition">
+    <goal name="is_singleton&#39;vc.7.3.0" expl="postcondition">
     <proof prover="3"><result status="unknown" time="0.04"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.1" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.3.1" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.05"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.2" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.3.2" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.00"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.3" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.3.3" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.03"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.4" expl="postcondition">
+    <goal name="is_singleton&#39;vc.7.3.4" expl="postcondition">
     <proof prover="3"><result status="timeout" time="5.00"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.5" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.3.5" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.60"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.6" expl="postcondition">
-    <proof prover="3"><result status="timeout" time="5.00"/></proof>
+    <goal name="is_singleton&#39;vc.7.3.6" expl="postcondition" proved="true">
+    <proof prover="3"><result status="valid" time="0.09"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.3.7" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.3.7" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.02"/></proof>
     </goal>
    </transf>
    </goal>
-   <goal name="is_singleton&#39;vc.1.4" expl="postcondition">
-   <proof prover="3"><result status="unknown" time="0.01"/></proof>
+   <goal name="is_singleton&#39;vc.7.4" expl="postcondition">
+   <proof prover="3" obsolete="true"><result status="unknown" time="0.01"/></proof>
    <transf name="split_vc" >
-    <goal name="is_singleton&#39;vc.1.4.0" expl="postcondition">
+    <goal name="is_singleton&#39;vc.7.4.0" expl="postcondition">
     <proof prover="3"><result status="unknown" time="0.04"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.1" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.4.1" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.03"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.2" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.4.2" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.02"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.3" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.4.3" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.62"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.4" expl="postcondition">
+    <goal name="is_singleton&#39;vc.7.4.4" expl="postcondition">
     <proof prover="3"><result status="timeout" time="5.00"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.5" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.4.5" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.67"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.6" expl="postcondition">
-    <proof prover="3"><result status="timeout" time="5.00"/></proof>
+    <goal name="is_singleton&#39;vc.7.4.6" expl="postcondition" proved="true">
+    <proof prover="3"><result status="valid" time="0.08"/></proof>
     </goal>
-    <goal name="is_singleton&#39;vc.1.4.7" expl="postcondition" proved="true">
+    <goal name="is_singleton&#39;vc.7.4.7" expl="postcondition" proved="true">
     <proof prover="3"><result status="valid" time="0.03"/></proof>
     </goal>
    </transf>