FA-89266 / Digital logic simulation / Open access
Out-of-range load value stored directly · case 01
Loading a value above the modulus puts the counter in an illegal state.
ROOT CAUSE
The loaded value is not reduced modulo m.
VERIFIED REPAIR
Store value mod m.
Unsuccessful approach: Clamping to m-1 differs from modulo reduction.
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
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 | [[8, 0], [1, 0]] | [[2, 0], [1, 0]] | Failed |
| 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 / 4fc016e54ed4c2f442f5002b94a7f27a605f119585e332cde09e4ef274545b19
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 = min(v, m - 1)
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 | [[5, 0], [4, 0]] | [[2, 0], [1, 0]] | Failed |
| 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 / ad2705546baaa401ec79678d71aa15a24f264d8daadaa1efc4dc059d67ce0f30
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.921312+00:00.
Case digest / 950e1a525b49bd642848a8a8953e0a31253a19f7a974941ce65a5fac3b60c81d