FA-89251 / Digital logic simulation / Open access
Down count saturates at zero · case 01
Counting down from 0 stays at 0 instead of wrapping to m-1.
ROOT CAUSE
The down-count is clamped rather than wrapped.
VERIFIED REPAIR
Wrap the down-count modulo m.
Unsuccessful approach: Wrapping to m instead of m-1 leaves an out-of-range state.
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:
q = v % m
elif en == 1:
q = (q + 1) % m if up == 1 else max(q - 1, 0)
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], [0, 1], [0, 1]] | [[0, 0], [5, 1], [4, 0]] | Failed |
| 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 | [[0, 1], [1, 0]] | [[5, 1], [0, 1]] | Failed |
SHA-256 / b1a06ea2a27be05ce998f6f9adda64b33a41214bf9d7b0329f76c827858082b8
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
elif en == 1:
q = (q + 1) % m if up == 1 else (q - 1 if q else 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], [6, 1], [5, 0]] | [[0, 0], [5, 1], [4, 0]] | Failed |
| 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 | [[6, 1], [1, 0]] | [[5, 1], [0, 1]] | Failed |
SHA-256 / 0b43a5f485b4788c92866450d6aa1ef8e34beb267e1293f6427b1e1ea6507185
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.568942+00:00.
Case digest / 4085ef93099addb4b73a7ef4a2c9989b1cd51417ab080daeaefbcea50fef877d