From 6f1fd15b0ecbe5d6e81f8cd757cf4f9bfe829a08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr>
Date: Tue, 11 May 2021 14:58:24 +0200
Subject: [PATCH] [Bool] it is LRA that should decide on its literals if
 fourier needs it

---
 src_colibri2/theories/LRA/fourier.ml  | 3 ++-
 src_colibri2/theories/bool/boolean.ml | 3 ---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/src_colibri2/theories/LRA/fourier.ml b/src_colibri2/theories/LRA/fourier.ml
index 06f226218..046503fd8 100644
--- a/src_colibri2/theories/LRA/fourier.ml
+++ b/src_colibri2/theories/LRA/fourier.ml
@@ -259,7 +259,8 @@ let converter d (f:Ground.t) =
     IArray.iter ~f:attach args;
     Egraph.attach_value d (Ground.node f) Boolean.dom Daemon.key ();
     Datastructure.Push.push comparisons d f;
-    Egraph.register_delayed_event d Daemon.key ()
+    Egraph.register_delayed_event d Daemon.key ();
+    Egraph.register_decision d (Boolean.chobool (Ground.node f))
   | _ -> ()
 
 let init env =
diff --git a/src_colibri2/theories/bool/boolean.ml b/src_colibri2/theories/bool/boolean.ml
index ad5c4d0bb..aff3d50e4 100644
--- a/src_colibri2/theories/bool/boolean.ml
+++ b/src_colibri2/theories/bool/boolean.ml
@@ -323,9 +323,6 @@ let converter d (f:Ground.t) =
   | { app = {builtin = Expr.False}; tyargs = []; args; _ } ->
     assert ( IArray.is_empty args);
     reg _false
-  | { ty; _ }
-    when Ground.Ty.equal ty Ground.Ty.bool  ->
-    Egraph.register_decision d (chobool res)
   | _ -> ()
 
 
-- 
GitLab