FAILURE MAP
← Case archive

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.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

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 fixtureActualExpectedOutcome
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 fixtureActualExpectedOutcome
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 fixtureActualExpectedOutcome
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