FAILURE MAP
← Case archive

FA-11926 / Scientific pipeline provenance / Open access

A rotor loading manifest pairs adjacent tubes as counterweights · case 01

A planned opposed-pair rotor load passes despite unmatched opposite tube masses.

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

ROOT CAUSE

Adjacent slots or summed half-rotor mass are treated as evidence of opposed-slot balance.

THE FAILURE

Adjacent slots or summed half-rotor mass are treated as evidence of opposed-slot balance.

Unsuccessful approach: Comparing total masses in the two rotor halves allows opposing pair errors to cancel.

Case contract

Slots are a nonempty even-length list of nonnegative integer effective tube masses, including adapters; zero means empty. Return whether every slot equals its opposite slot at half the slot count. This deliberately conservative opposed-pair acceptance rule is not a general rotor dynamics or instrument safety model.

Why this case matters

A deterministic offline model of scientific specimen processing and provenance; explicit fixtures test the stated bookkeeping or processing acceptance rule.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(slots):
    return all(slots[i]==slots[i+1] for i in range(0,len(slots),2))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal adjacent masses do not oppose', solve([N,N,2*N,2*N]), False)
check('opposed pairs balanced', solve([N,2*N,N,2*N]), True)
check('half sums hide pair mismatch', solve([N,2*N,2*N,N]), False)
check('empty rotor positions', solve([0,0,0,0]), True)
check('two slot rotor', solve([N,N]), True)
check('missing counterweight', solve([N,0]), False)
check('six slot opposed loading', solve([N,2*N,0,N,2*N,0]), True)
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
equal adjacent masses do not opposeTrueFalseFailed
opposed pairs balancedFalseTrueFailed
half sums hide pair mismatchFalseFalsePassed
empty rotor positionsTrueTruePassed
two slot rotorTrueTruePassed
missing counterweightFalseFalsePassed
six slot opposed loadingFalseTrueFailed

SHA-256 / eb7b5f78a03af8eaa8a4aafa67a4de1588202dd0fd3532e7e6ac51f9c702636a

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(slots):
    h=len(slots)//2
    return sum(slots[:h])==sum(slots[h:])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal adjacent masses do not oppose', solve([N,N,2*N,2*N]), False)
check('opposed pairs balanced', solve([N,2*N,N,2*N]), True)
check('half sums hide pair mismatch', solve([N,2*N,2*N,N]), False)
check('empty rotor positions', solve([0,0,0,0]), True)
check('two slot rotor', solve([N,N]), True)
check('missing counterweight', solve([N,0]), False)
check('six slot opposed loading', solve([N,2*N,0,N,2*N,0]), True)
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
equal adjacent masses do not opposeFalseFalsePassed
opposed pairs balancedTrueTruePassed
half sums hide pair mismatchTrueFalseFailed
empty rotor positionsTrueTruePassed
two slot rotorTrueTruePassed
missing counterweightFalseFalsePassed
six slot opposed loadingTrueTruePassed

SHA-256 / 9208468a931bd58ddb4f303c5e4b7916597fccbf9417a8cf7657e7bc938aedf8

HELD IN THE MEMBER ARCHIVE

The verified repair and its recorded checks are member-only.

This mechanism has 7 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.

Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.

Member access is invitation-based. Sign in with your invited account to inspect the repair.

Sign in to the archive ↗

Verification & scope

Symbolic in-memory model only; not instrument safety guidance or a production scientific validation. 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:38:52.305412+00:00.

Case digest / 133c4e92e45b35c0e7466ecc0c56c703281ef86efe74abff92b78026e25cc354