diff --git a/Src/COLIBRI/col_solve.pl b/Src/COLIBRI/col_solve.pl
index db253f132511cdd6bb2f5655aff490fe9702de74..c8c93c123945495b23309c2314647e12451e76cf 100644
--- a/Src/COLIBRI/col_solve.pl
+++ b/Src/COLIBRI/col_solve.pl
@@ -800,12 +800,10 @@ smt_test(TO,Size) :-
     %StrDir = "./QF_FPLRA/schanda/", % 0 TO (cvc4 0)
 %----------------------------------------------------------------    
     %StrDir = "./QF_FP/20170501-Heizmann-UltimateAutomizer/", % 0
-% A VOIR
     %StrDir = "./QF_FP/20190429-UltimateAutomizerSvcomp2019/",% 0 (bitwuzla 0)
-    %StrDir = "./QF_FP/ramalho/", % 4 (4 min_solve)(cvc4 19)(bitwuzla 17)
-    %StrDir = "./QF_FP/griggio/", % 43 TO (42/41 min_solve)(cast float-double, delta 0) (cvc4 89)(bitwuzla 74) 
-    %StrDir = "./QF_FP/schanda/spark/", % 5 TO (5 min_solve) (avec (X+Y)/2 = X/2+Y/2
-    % quand c'est correcte, pas de inf/0 pour le resultat) (ncvc4 8)(bitwuzla 3)
+    %StrDir = "./QF_FP/ramalho/", % 4 (min_solve)(cvc4 19)(bitwuzla 17)
+    StrDir = "./QF_FP/griggio/", % 43 (min_solve, cast float-double, delta 0) (cvc4 89)(bitwuzla 74) 
+    %StrDir = "./QF_FP/schanda/spark/", % 7 (min_solve avec X =< (X+Y)/2 =< Y) (ncvc4 8)(bitwuzla 3)
     %StrDir = "./QF_FP/wintersteiger/", % tout OK
 
 %-----------------------------------------------------------------
@@ -823,12 +821,12 @@ smt_test(TO,Size) :-
     %StrDir = "./QF_ABV/bmc-arrays/", 
 %-----------------------------------------------------------------
     %StrDir = "QF_AX/",
-    %StrDir = "QF_AX/storeinv/",
-    %StrDir = "QF_AX/swap/",
-    %StrDir = "QF_AX/storecomm/",
-    %StrDir = "QF_AX/cvc/",
+    %StrDir = "QF_AX/storeinv/", % 3
+    %StrDir = "QF_AX/swap/", % 8
+    %StrDir = "QF_AX/storecomm/", % 0
+    %StrDir = "QF_AX/cvc/", % 0
 
-    StrDir = "QF_ALIA/qlock2/", % Des TO et core dump
+    %StrDir = "QF_ALIA/qlock2/", % Des TO et core dump
     %StrDir = "QF_ALIA/cvc/", % TOUT OK
     %StrDir = "QF_ALIA/UltimateAutomizer2/",% des TO
     %StrDir = "QF_ALIA/piVC/", % TOUT OK
@@ -1035,12 +1033,13 @@ smt_unit_test(TO) :-
     %StrDir = "./QF_FP/ramalho/",% 6-2 T0
     %StrDir = "./QF_FP/griggio/", % 59 TO en 24s, 51 en 60s (cvc4 90 en 60s)
     %StrDir = "./QF_FP/schanda/spark/",% 7 TO
-    StrDir = "./QF_FP/wintersteiger/", % 0 TO
+    %StrDir = "./QF_FP/wintersteiger/", % 0 TO
 %------------------------------------------------------------------------
-    %StrDir = "QF_AX/",
+    StrDir = "QF_AX/",
     %StrDir = "QF_AX/storeinv/",
     %StrDir = "QF_AX/swap/",
     %StrDir = "QF_AX/storecomm/",
+    %StrDir = "QF_AX/cvc/",
 %----------------------------------------------------------------------
     %StrDir = "./QF_BV/",
     %StrDir = "./QF_BV/20170501-Heizmann-UltimateAutomizer/",
diff --git a/Src/COLIBRI/realarith.pl b/Src/COLIBRI/realarith.pl
index d49b4481fdf8e1d2444b558a9298a2841ef249a1..29cc334d0c0195e60f4ac45c94516f76896a7122 100755
--- a/Src/COLIBRI/realarith.pl
+++ b/Src/COLIBRI/realarith.pl
@@ -12792,6 +12792,7 @@ div_real_bis(Type,A,B,C) :-
             true
         ;   div_real_rec(Type,A,B,C),
             div_real_ineqs(Type,A,B,C),
+            average_real_ineqs(Type,A,B,C),
             div_real_inst(Type,A,B,C,Continue3),
             check_div_mult_exact(Type,A,B,C,Continue3,Continue4),
             (var(Continue4) ->
@@ -12800,8 +12801,7 @@ div_real_bis(Type,A,B,C) :-
                 set_prio_inst([A,B,C],4,5,Prio),
                 NewGoal = div_real1(Type,A,B,C),
                 
-                my_suspend(NewGoal,Prio,(A,B,C)->suspend:constrained),
-                saturate_div_real_two(Type,A,B,C)))).
+                my_suspend(NewGoal,Prio,(A,B,C)->suspend:constrained)))).
 
 check_div_mult_exact(Type,A,B,C,Continue,NContinue) :-
     var(Continue),
@@ -12828,52 +12828,31 @@ check_div_mult_exact(Type,A,B,C,_,Continue) :-
 % permet de capturer certains calculs de moyenne
 % Ex A =< (A+B)/2 =< B et A < B
 % pour les average_(1,2,3) de schanda
-%saturate_div_real_two(Type,A,B,C) :- !.
+% average_real_ineqs(Type,A,B,C) :- !.
 % Bizarre !!
-saturate_div_real_two(Type,A,B,C) :-
+average_real_ineqs(Type,A,B,C) :-
     ((B == 2.0,
-      not_inf_bounds(A),
-      not_zero(C),
       get_saved_cstr_suspensions(LSusp),
       member((S,add_real1(Type,X,Y,AA)),LSusp),
-      % (X+Y)/2 = C
-      % dans ce cas (X+Y)/2 = X/2 + Y/2
+      AA == A,
       var(X),
-      var(Y))
+      var(Y),
+      get_rel_between_real_args(X,Y,Rel),
+      occurs(Rel,(<,=<,>,>=)))
     ->
-        % on sature en creant X/2 + Y/2 = C
-        get_cstr_suspensions(X,LSX),
-        ((member(SX,LSX),
-          get_suspension_data(SX,goal,div_real1(Type,XX,X2,Xd2)),
-          X2 == 2.0,
-          XX == X)
-        ->
-            Goals1 = []
-        ;   Goals1 = [div_real(Type,X,2.0,Xd2)]),
-        get_cstr_suspensions(Y,LSY),
-        ((member(SY,LSY),
-          get_suspension_data(SY,goal,div_real1(Type,YY,Y2,Yd2)),
-          Y2 == 2.0,
-          YY == Y)
-        ->
-            Goals2 = Goals1
-        ;   append(Goals1,[div_real(Type,Y,2.0,Yd2)],Goals2)),
-        (Goals2 == [] ->
-            ((member((_,add_real1(Type,Ud2,Vd2,CC)),LSusp),
-              CC == C,
-              (Ud2 == Xd2 ->
-                  Vd2 == Yd2
-              ;   Ud2 == Yd2,
-                  Vd2 == Xd2))
-            ->
-                Goals = []
-            ;   Goals = [add_real(Type,Xd2,Yd2,C)])
-        ;   append(Goals2,[add_real(Type,Xd2,Yd2,C)],Goals)),
-        (foreach(G,Goals) do
-            call_priority(G,2))
+        (getval(use_delta,1)@eclipse ->
+            (occurs(Rel,(=<,<)) ->
+                launch_real_ineq(=<,Type,X,C),
+                launch_real_ineq(=<,Type,C,Y)
+            ;   launch_real_ineq(=<,Type,Y,C),
+                launch_real_ineq(=<,Type,C,X))
+        ;   (occurs(Rel,(=<,<)) ->
+                launch_geq_real(Type,Y,C),
+                launch_geq_real(Type,C,X)
+            ;   launch_geq_real(Type,X,C),
+                launch_geq_real(Type,C,Y)))
     ;   true).
 
-
 %% PMO si les 3 args sont des float_int entre -2^53 et 2^53 on peut
 %% deleguer le calcul de mult_real aux entiers
 check_launch_div_int(Type,A,B,C,Continue,_) :-