FA-13706 / Numerical aggregation / Open access
Contingency pearson reduction: A zero expected cell is assigned a unit discrepancy. · case 01
The reduction disagrees with its explicit aggregation oracle.
ROOT CAUSE
A zero expected cell is assigned a unit discrepancy.
VERIFIED REPAIR
Preserve the contingency pearson reduction contract at the identified reduction decision.
Unsuccessful approach: A fractional pseudocount still adds evidence where no marginal mass exists.
Case contract
For a rectangular nonnegative integer count table, return the Pearson sum of (observed-expected)^2/expected under independence, with expected=row marginal*column marginal/grand total. Zero expected cells contribute zero; empty or zero-total tables return "0". Exact Fraction string; no inferential p-value claim.
Why this case matters
Exact bounded examples isolate a reduction defect without floating-point or external-service effects.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(table):
n=len(table)
m=len(table[0]) if n else 0
rows=[sum(r) for r in table]
cols=[sum(table[i][j] for i in range(n)) for j in range(m)]
total=sum(rows)
if not total: return "0"
stat=Fraction(0)
for i in range(n):
for j in range(m):
expected=Fraction(rows[i]*cols[j],total)
if expected==0:
stat+=1
continue
stat+=(table[i][j]-expected)**2/expected
return str(stat)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([[4, 0], [0, 4]],)), '8')
check('regression 2', solve(*([[2, 3], [4, 6]],)), '0')
check('regression 3', solve(*([],)), '0')
check('regression 4', solve(*([[0, 0], [0, 0]],)), '0')
check('regression 5', solve(*([[2, 0, 1], [3, 4, 0]],)), '30/7')
check('regression 6', solve(*([[0, 0, 0], [1, 2, 3]],)), '0')
check('regression 7', solve(*([[1, 2], [3, 0], [2, 4]],)), '4')
check("variable diagonal mass",solve([[N,0],[0,N]]),str(2*N))
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 |
|---|---|---|---|
| regression 1 | 8 | 8 | Passed |
| regression 2 | 0 | 0 | Passed |
| regression 3 | 0 | 0 | Passed |
| regression 4 | 0 | 0 | Passed |
| regression 5 | 30/7 | 30/7 | Passed |
| regression 6 | 3 | 0 | Failed |
| regression 7 | 4 | 4 | Passed |
| variable diagonal mass | 2 | 2 | Passed |
SHA-256 / ea1da584faa23b0b1056115c4e72f63d9bd40a50f34ce8855bce4b0725e78fc5
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(table):
n=len(table)
m=len(table[0]) if n else 0
rows=[sum(r) for r in table]
cols=[sum(table[i][j] for i in range(n)) for j in range(m)]
total=sum(rows)
if not total: return "0"
stat=Fraction(0)
for i in range(n):
for j in range(m):
expected=Fraction(rows[i]*cols[j],total)
if expected==0:
stat+=Fraction(1,max(1,total))
continue
stat+=(table[i][j]-expected)**2/expected
return str(stat)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([[4, 0], [0, 4]],)), '8')
check('regression 2', solve(*([[2, 3], [4, 6]],)), '0')
check('regression 3', solve(*([],)), '0')
check('regression 4', solve(*([[0, 0], [0, 0]],)), '0')
check('regression 5', solve(*([[2, 0, 1], [3, 4, 0]],)), '30/7')
check('regression 6', solve(*([[0, 0, 0], [1, 2, 3]],)), '0')
check('regression 7', solve(*([[1, 2], [3, 0], [2, 4]],)), '4')
check("variable diagonal mass",solve([[N,0],[0,N]]),str(2*N))
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 |
|---|---|---|---|
| regression 1 | 8 | 8 | Passed |
| regression 2 | 0 | 0 | Passed |
| regression 3 | 0 | 0 | Passed |
| regression 4 | 0 | 0 | Passed |
| regression 5 | 30/7 | 30/7 | Passed |
| regression 6 | 1/2 | 0 | Failed |
| regression 7 | 4 | 4 | Passed |
| variable diagonal mass | 2 | 2 | Passed |
SHA-256 / 7df3e6fe13fd371844afc19c7fc77fb3c74f0558f06ce1520af5ce0cadece6ab
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(table):
n=len(table)
m=len(table[0]) if n else 0
rows=[sum(r) for r in table]
cols=[sum(table[i][j] for i in range(n)) for j in range(m)]
total=sum(rows)
if not total: return "0"
stat=Fraction(0)
for i in range(n):
for j in range(m):
expected=Fraction(rows[i]*cols[j],total)
if expected==0: continue
stat+=(table[i][j]-expected)**2/expected
return str(stat)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([[4, 0], [0, 4]],)), '8')
check('regression 2', solve(*([[2, 3], [4, 6]],)), '0')
check('regression 3', solve(*([],)), '0')
check('regression 4', solve(*([[0, 0], [0, 0]],)), '0')
check('regression 5', solve(*([[2, 0, 1], [3, 4, 0]],)), '30/7')
check('regression 6', solve(*([[0, 0, 0], [1, 2, 3]],)), '0')
check('regression 7', solve(*([[1, 2], [3, 0], [2, 4]],)), '4')
check("variable diagonal mass",solve([[N,0],[0,N]]),str(2*N))
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 |
|---|---|---|---|
| regression 1 | 8 | 8 | Passed |
| regression 2 | 0 | 0 | Passed |
| regression 3 | 0 | 0 | Passed |
| regression 4 | 0 | 0 | Passed |
| regression 5 | 30/7 | 30/7 | Passed |
| regression 6 | 0 | 0 | Passed |
| regression 7 | 4 | 4 | Passed |
| variable diagonal mass | 2 | 2 | Passed |
SHA-256 / a542bad753b06822356152fad5fc9b485291a2b7e3697bb4d919b633d8619773
Verification & scope
Small offline integer/rational inputs only; no performance, statistical inference, or production-library conformance claim. 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:39:09.680241+00:00.
Case digest / 7f41b6a6e29f31a7a9b84f1c09dccb7d660b985bef56e125b31e6f5bb8e348fe