Skip to content

Commit

Permalink
1.13.9: Fix of embarrassing unsoundness (see CHANGELOG)
Browse files Browse the repository at this point in the history
  • Loading branch information
rindPHI committed Apr 27, 2023
1 parent 4a9cb0e commit 83f1d04
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 3 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ This file contains the notable changes in the ISLa project since version 0.2a1

## [unreleased]

## [1.13.9] - 2023-04-27

### Changed

- Bug fix to HUGE unsoundness: Solver returned a solution for "false" constraint.

## [1.13.8] - 2023-04-27

### Changed
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "isla-solver"
version = "1.13.8"
version = "1.13.9"
authors = [
{ name = "Dominic Steinhoefel", email = "[email protected]" },
]
Expand Down
2 changes: 1 addition & 1 deletion src/isla/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@
# You should have received a copy of the GNU General Public License
# along with ISLa. If not, see <http://www.gnu.org/licenses/>.

__version__ = "1.13.8"
__version__ = "1.13.9"
2 changes: 1 addition & 1 deletion src/isla/solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -574,7 +574,7 @@ def __init__(
self.top_constant.map(
lambda c: self.formula.substitute_expressions({c: self.initial_tree})
)
.orelse(lambda: true())
.orelse(lambda: self.formula)
.get()
)
initial_state = SolutionState(initial_formula, self.initial_tree)
Expand Down
10 changes: 10 additions & 0 deletions tests/test_solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,16 @@


class TestSolver(unittest.TestCase):
def test_no_solution_for_literal_false_constraint(self):
# Yes, this happened
solver = ISLaSolver(LANG_GRAMMAR, "false")

try:
solver.solve()
self.fail("There should be no solution here")
except StopIteration:
pass

def test_atomic_smt_formula(self):
assgn = language.Constant("$assgn", "<assgn>")
formula = language.SMTFormula(
Expand Down

0 comments on commit 83f1d04

Please sign in to comment.