Commit e5426cbb authored by Thorsten Wißmann's avatar Thorsten Wißmann
Browse files

Make insertRule more disjunctive-aware

parent b856538d
......@@ -538,14 +538,17 @@ let insertRule state dep (chldrn: (sort * bset) list junction) : bool option =
junctionEvalBoolOption (junc ( child2satState children))
let isUnsat = (satStateChildren = Some false) in
(* find out satisfiability *)
let idx = stateAddRule state dep (List.rev children) in
List.iter (fun c -> coreAddParent c state idx) children;
if isUnsat then begin
propagateUnsat [UState (state, Some idx)];
Some false
end else None
match satStateChildren with
| Some false -> (* definitely unsat *)
propagateUnsat [UState (state, Some idx)];
Some false
| Some true ->
(* TODO: propagateSat ? *)
Some true
| None -> None
(* tells whether it is satisfiable:
Some true -> surely satisfiable
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment