Skip to content

Commit 79f0dce

Browse files
committed
Fix parsing bugs for converted mutex.
1 parent 98437c2 commit 79f0dce

File tree

3 files changed

+531
-2
lines changed

3 files changed

+531
-2
lines changed

aiger/parser.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,11 @@ def parse_latch(state, line) -> bool:
149149
match = LATCH_PATTERN.match(line)
150150
if match is None:
151151
raise ValueError("Expecting a latch: {line}")
152-
elems = fn.lmap(int, match.groups())
153152

153+
elems = match.groups()
154154
if elems[2] is None:
155155
elems = elems[:2] + (0,)
156+
elems = fn.lmap(int, elems)
156157

157158
state.latches.add(Latch(*elems))
158159
state.nodes[elems[0]] = set() # Add latch in as source.
@@ -259,7 +260,9 @@ def parse(lines, to_aig: bool = True):
259260
latch_lits = {latch.id for latch in state.latches}
260261
lit2expr = {}
261262
for lit in toposort(state.nodes):
262-
if lit in state.inputs:
263+
if lit == 0:
264+
lit2expr[lit] = A.atom(False)
265+
elif lit in state.inputs:
263266
lit2expr[lit] = A.atom(inputs.inv[lit])
264267
elif lit in latch_lits:
265268
lit2expr[lit] = A.atom(None)

0 commit comments

Comments
 (0)