FA-89261 / Digital logic simulation / Open access
Load ignored while count enable is low · case 01
A synchronous load issued with enable low does not change the counter.
ROOT CAUSE
Load is qualified by the count enable.
VERIFIED REPAIR
Load unconditionally, with priority over counting.
Unsuccessful approach: Loading and then also counting in the same edge overshoots the loaded value.
Case contract
Input [m, q0, ops]: ops per clock [load, value, en, up]. Before the edge tc = en==1 and ((up==1 and q==m-1) or (up==0 and q==0)). At the edge load==1 sets q = value mod m (load has priority and ignores en); else en==1 counts up or down modulo m. Return [q after edge, tc] per clock.
Why this case matters
Counters are the most common sequential primitive; wrap, load priority and terminal-count gating are recurring simulation-model bugs.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(*args):
m, q, ops = args
out = []
for load, v, en, up in ops:
tc = int(en == 1 and ((up == 1 and q == m - 1) or (up == 0 and q == 0)))
if load == 1 and en == 1:
q = v % m
elif en == 1:
q = (q + 1) % m if up == 1 else (q - 1) % m
out.append([q, tc])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1]]], [[5, 1], [0, 1]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0], [2, 0], [3, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| count up through wrap | [[5, 0], [0, 1], [1, 0], [2, 0]] | [[5, 0], [0, 1], [1, 0], [2, 0]] | Passed |
| count down through zero | [[0, 0], [5, 1], [4, 0]] | [[0, 0], [5, 1], [4, 0]] | Passed |
| terminal count needs enable | [[5, 0], [0, 1], [0, 0]] | [[5, 0], [0, 1], [0, 0]] | Passed |
| load with enable low | [[0, 0], [1, 0]] | [[3, 0], [4, 0]] | Failed |
| load value reduced modulo | [[2, 0], [1, 0]] | [[2, 0], [1, 0]] | Passed |
| load while enabled does not count | [[1, 0], [2, 0]] | [[1, 0], [2, 0]] | Passed |
| down terminal count at zero | [[5, 1], [0, 1]] | [[5, 1], [0, 1]] | Passed |
SHA-256 / 5e9555ac6c48991d6748aeb191a18bbb6ab2038f115214a640780af50f961dc0
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(*args):
m, q, ops = args
out = []
for load, v, en, up in ops:
tc = int(en == 1 and ((up == 1 and q == m - 1) or (up == 0 and q == 0)))
if load == 1:
q = v % m
if en == 1:
q = (q + 1) % m if up == 1 else (q - 1) % m
out.append([q, tc])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1]]], [[5, 1], [0, 1]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0], [2, 0], [3, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| count up through wrap | [[5, 0], [0, 1], [1, 0], [2, 0]] | [[5, 0], [0, 1], [1, 0], [2, 0]] | Passed |
| count down through zero | [[0, 0], [5, 1], [4, 0]] | [[0, 0], [5, 1], [4, 0]] | Passed |
| terminal count needs enable | [[5, 0], [0, 1], [0, 0]] | [[5, 0], [0, 1], [0, 0]] | Passed |
| load with enable low | [[3, 0], [4, 0]] | [[3, 0], [4, 0]] | Passed |
| load value reduced modulo | [[3, 0], [2, 0]] | [[2, 0], [1, 0]] | Failed |
| load while enabled does not count | [[2, 0], [3, 0]] | [[1, 0], [2, 0]] | Failed |
| down terminal count at zero | [[5, 1], [0, 1]] | [[5, 1], [0, 1]] | Passed |
SHA-256 / 6aab9141ec10b3d1297e71494bff96ae7afbda1f745315199bd068d720ce07eb
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(*args):
m, q, ops = args
out = []
for load, v, en, up in ops:
tc = int(en == 1 and ((up == 1 and q == m - 1) or (up == 0 and q == 0)))
if load == 1:
q = v % m
elif en == 1:
q = (q + 1) % m if up == 1 else (q - 1) % m
out.append([q, tc])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1]]], [[5, 1], [0, 1]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0]])], [('count up through wrap', [5, 3, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [5, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [4, 1], [3, 0]]), ('terminal count needs enable', [5, 4, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[4, 0], [0, 1], [0, 0]]), ('load with enable low', [5, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [5, 0, [[1, 6, 1, 1], [0, 0, 1, 0]]], [[1, 0], [0, 0]]), ('load while enabled does not count', [5, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [5, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[4, 1], [0, 1], [1, 0], [2, 0], [3, 0]])], [('count up through wrap', [6, 4, [[0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 0], [0, 1], [1, 0], [2, 0]]), ('count down through zero', [6, 1, [[0, 0, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0]]], [[0, 0], [5, 1], [4, 0]]), ('terminal count needs enable', [6, 5, [[0, 0, 0, 1], [0, 0, 1, 1], [0, 0, 0, 0]]], [[5, 0], [0, 1], [0, 0]]), ('load with enable low', [6, 0, [[1, 3, 0, 1], [0, 0, 1, 1]]], [[3, 0], [4, 0]]), ('load value reduced modulo', [6, 0, [[1, 8, 1, 1], [0, 0, 1, 0]]], [[2, 0], [1, 0]]), ('load while enabled does not count', [6, 2, [[1, 1, 1, 1], [0, 0, 1, 1]]], [[1, 0], [2, 0]]), ('down terminal count at zero', [6, 0, [[0, 0, 1, 0], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1], [0, 0, 1, 1]]], [[5, 1], [0, 1], [1, 0], [2, 0], [3, 0], [4, 0]])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| count up through wrap | [[5, 0], [0, 1], [1, 0], [2, 0]] | [[5, 0], [0, 1], [1, 0], [2, 0]] | Passed |
| count down through zero | [[0, 0], [5, 1], [4, 0]] | [[0, 0], [5, 1], [4, 0]] | Passed |
| terminal count needs enable | [[5, 0], [0, 1], [0, 0]] | [[5, 0], [0, 1], [0, 0]] | Passed |
| load with enable low | [[3, 0], [4, 0]] | [[3, 0], [4, 0]] | Passed |
| load value reduced modulo | [[2, 0], [1, 0]] | [[2, 0], [1, 0]] | Passed |
| load while enabled does not count | [[1, 0], [2, 0]] | [[1, 0], [2, 0]] | Passed |
| down terminal count at zero | [[5, 1], [0, 1]] | [[5, 1], [0, 1]] | Passed |
SHA-256 / 66dfcb15296c2eb648dcde061c7fb0bf64f01adc8e5943e662de376064341050
Verification & scope
A deterministic bounded teaching model of one simulator rule set; the contract is stipulated and is not a claim of conformance to any HDL standard or commercial simulator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:51:15.781638+00:00.
Case digest / daafee4aa0b3cd77c928e4bd26f862a7146c64b1c3a13bb475c1ad6638b3cf08