Skip to content

Commit 6d9b4bd

Browse files
committed
Fix semantic equivalence check in code
1 parent 8804e24 commit 6d9b4bd

2 files changed

Lines changed: 6 additions & 13 deletions

File tree

src/notebook/math/logic/propositional/sat.py

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
from .variables import get_propositional_variables
99

1010

11-
def iter_interpretations(formula: Formula) -> Iterable[PropositionalInterpretation]:
12-
variables = sorted(get_propositional_variables(formula))
11+
def iter_interpretations(*formulas: Formula) -> Iterable[PropositionalInterpretation]:
12+
variables = sorted(var for formula in formulas for var in get_propositional_variables(formula))
1313

1414
for spec in product([True, False], repeat=len(variables)):
1515
yield PropositionalInterpretation(dict(zip(variables, spec, strict=True)))
@@ -39,15 +39,8 @@ def is_contradiction(formula: Formula) -> bool:
3939

4040

4141
def are_semantically_equivalent(first: Formula, second: Formula) -> bool:
42-
for interp in iter_interpretations(first):
43-
try:
44-
eval_second = evaluate_propositional_formula(second, interp)
45-
except MissingInterpretationError:
46-
return False
47-
48-
eval_first = evaluate_propositional_formula(first, interp)
49-
50-
if eval_first != eval_second:
42+
for interp in iter_interpretations(first, second):
43+
if evaluate_propositional_formula(first, interp) != evaluate_propositional_formula(second, interp):
5144
return False
5245

5346
return True

src/notebook/math/logic/transformation/test_constants.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from ....support.pytest import pytest_parametrize_kwargs
2-
from ..propositional import are_equisatisfiable, parse_propositional_formula
2+
from ..propositional import are_equisatisfiable, are_semantically_equivalent, parse_propositional_formula
33
from .constants import collapse_constants, expand_constants
44

55

@@ -12,7 +12,7 @@
1212
def test_expand_constants(formula: str, expected: str) -> None:
1313
formula_ = parse_propositional_formula(formula)
1414
expected_ = parse_propositional_formula(expected)
15-
assert are_equisatisfiable(formula_, expected_)
15+
assert are_semantically_equivalent(formula_, expected_)
1616

1717
expanded = expand_constants(formula_)
1818
assert expanded == expected_

0 commit comments

Comments
 (0)