Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Software
COOL
Commits
e5426cbb
Commit
e5426cbb
authored
Jul 11, 2014
by
Thorsten Wißmann
Browse files
Make insertRule more disjunctive-aware
parent
b856538d
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/lib/CoAlgReasoner.ml
View file @
e5426cbb
...
@@ -538,14 +538,17 @@ let insertRule state dep (chldrn: (sort * bset) list junction) : bool option =
...
@@ -538,14 +538,17 @@ let insertRule state dep (chldrn: (sort * bset) list junction) : bool option =
in
in
junctionEvalBoolOption
(
junc
(
List
.
map
child2satState
children
))
junctionEvalBoolOption
(
junc
(
List
.
map
child2satState
children
))
in
in
let
isUnsat
=
(
satStateChildren
=
Some
false
)
in
(* find out satisfiability *)
(* find out satisfiability *)
let
idx
=
stateAddRule
state
dep
(
List
.
rev
children
)
in
let
idx
=
stateAddRule
state
dep
(
List
.
rev
children
)
in
List
.
iter
(
fun
c
->
coreAddParent
c
state
idx
)
children
;
List
.
iter
(
fun
c
->
coreAddParent
c
state
idx
)
children
;
if
isUnsat
then
begin
match
satStateChildren
with
propagateUnsat
[
UState
(
state
,
Some
idx
)];
|
Some
false
->
(* definitely unsat *)
Some
false
propagateUnsat
[
UState
(
state
,
Some
idx
)];
end
else
None
Some
false
|
Some
true
->
(* TODO: propagateSat ? *)
Some
true
|
None
->
None
(* tells whether it is satisfiable:
(* tells whether it is satisfiable:
Some true -> surely satisfiable
Some true -> surely satisfiable
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment