Skip to content
This repository has been archived by the owner on Apr 25, 2024. It is now read-only.

Commit

Permalink
Mark nodes with undecided predicates
Browse files Browse the repository at this point in the history
  • Loading branch information
geo2a committed Nov 30, 2023
1 parent e9cf660 commit 8d4bb89
Showing 1 changed file with 5 additions and 11 deletions.
16 changes: 5 additions & 11 deletions src/pyk/kcfg/explore.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,16 +436,14 @@ def extend_cterm(
if depth > 0:
return Step(cterm, depth, next_node_logs)

# Stuck, Vacuous
# Stuck, Vacuous or Undecided
if not next_cterms:
if _is_vacuous:
return Vacuous()
if unknown_predicate is not None:
return Undecided(unknown_predicate)
return Stuck()

# Undecided
if unknown_predicate is not None:
return Undecided(cterm, unknown_predicate, depth)

# Cut rule
if len(next_cterms) == 1:
return Step(next_cterms[0], 1, next_node_logs, cut=True)
Expand Down Expand Up @@ -489,10 +487,8 @@ def log(message: str, *, warning: bool = False) -> None:
kcfg.add_stuck(node.id)
log(f'stuck node: {node.id}')

case Undecided(cterm, _, depth):
next_node = kcfg.create_node(cterm)
kcfg.add_undecided(next_node.id)
kcfg.create_edge(node.id, next_node.id, depth)
case Undecided(_):
kcfg.add_undecided(node.id)
log(f'undecided node: {node.id}')

case Abstract(cterm):
Expand Down Expand Up @@ -559,9 +555,7 @@ class Stuck(ExtendResult):
@final
@dataclass(frozen=True)
class Undecided(ExtendResult):
cterm: CTerm
unknown_predicate: KInner
depth: int
...


Expand Down

0 comments on commit 8d4bb89

Please sign in to comment.