FAILURE MAP
← Case archive

FA-16511 / Floating-point arithmetic / Open access

Floating exception flags replace the accumulated history · case 01

Floating exception flags replace the accumulated history.

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

ROOT CAUSE

Floating exception flags replace the accumulated history. The faulty expression is accrued=new.

VERIFIED REPAIR

Apply the contract at this fault site using accrued=prior|new.

Unsuccessful approach: The attempted local correction accrued=prior&new still violates the explicit regression fixtures.

Case contract

Stipulated floating exception environment: apply an operation flag set, accrue sticky flags, select enabled trap by priority invalid/divzero/overflow/underflow/inexact, save prior state and clear only requested flags after reporting the trap. Inputs are valid flag names.

Why this case matters

An offline floating representation model isolates a reproducible arithmetic fault.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(sticky, enabled, raised, clear):
    priority=['invalid','divzero','overflow','underflow','inexact']
    prior=set(sticky)
    new=set(raised)
    if 'overflow' in new: new.add('inexact')
    if 'underflow' in new: new.add('inexact')
    accrued=new
    pending=new & set(enabled)
    trap=next((flag for flag in priority if flag in pending),None)
    remaining=accrued-set(clear)
    return [sorted(prior),sorted(accrued),trap,sorted(remaining)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('sticky survives', solve(["invalid"],[],["inexact"],[]), [["invalid"],["inexact","invalid"],None,["inexact","invalid"]])
check('overflow implies inexact', solve([],[],["overflow"],[]), [[],["inexact","overflow"],None,["inexact","overflow"]])
check('underflow implies inexact', solve([],[],["underflow"],[]), [[],["inexact","underflow"],None,["inexact","underflow"]])
check('priority', solve([],["overflow","invalid"],["overflow","invalid"],[]), [[],["inexact","invalid","overflow"],"invalid",["inexact","invalid","overflow"]])
check('old flag no retrap', solve(["invalid"],["invalid"],["inexact"],[]), [["invalid"],["inexact","invalid"],None,["inexact","invalid"]])
check('clear after trap', solve([],["divzero"],["divzero"],["divzero"]), [[],["divzero"],"divzero",[]])
check('selective clear', solve(["invalid","inexact"],[],[],["inexact"]), [["inexact","invalid"],["inexact","invalid"],None,["invalid"]])
check('masked flag still sticky', solve([],[],["divzero"],[]), [[],["divzero"],None,["divzero"]])
check('five distinct flag sets', solve([],[],["invalid","divzero","inexact","underflow","overflow"][:N],[]), [[],sorted(["invalid","divzero","inexact","underflow","overflow"][:N]),None,sorted(["invalid","divzero","inexact","underflow","overflow"][:N])])
check('empty operation', solve(["inexact"] if N%2 else ["invalid"],[],[],[]), [["inexact"] if N%2 else ["invalid"],["inexact"] if N%2 else ["invalid"],None,["inexact"] if N%2 else ["invalid"]])
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
sticky survives[['invalid'], ['inexact'], None, ['inexact']][['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']]Failed
overflow implies inexact[[], ['inexact', 'overflow'], None, ['inexact', 'overflow']][[], ['inexact', 'overflow'], None, ['inexact', 'overflow']]Passed
underflow implies inexact[[], ['inexact', 'underflow'], None, ['inexact', 'underflow']][[], ['inexact', 'underflow'], None, ['inexact', 'underflow']]Passed
priority[[], ['inexact', 'invalid', 'overflow'], 'invalid', ['inexact', 'invalid', 'overflow']][[], ['inexact', 'invalid', 'overflow'], 'invalid', ['inexact', 'invalid', 'overflow']]Passed
old flag no retrap[['invalid'], ['inexact'], None, ['inexact']][['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']]Failed
clear after trap[[], ['divzero'], 'divzero', []][[], ['divzero'], 'divzero', []]Passed
selective clear[['inexact', 'invalid'], [], None, []][['inexact', 'invalid'], ['inexact', 'invalid'], None, ['invalid']]Failed
masked flag still sticky[[], ['divzero'], None, ['divzero']][[], ['divzero'], None, ['divzero']]Passed
five distinct flag sets[[], ['invalid'], None, ['invalid']][[], ['invalid'], None, ['invalid']]Passed
empty operation[['inexact'], [], None, []][['inexact'], ['inexact'], None, ['inexact']]Failed

SHA-256 / c6722b58f3d55704029c31d277bf9efe9327e76c30551e444b1a29e579082506

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(sticky, enabled, raised, clear):
    priority=['invalid','divzero','overflow','underflow','inexact']
    prior=set(sticky)
    new=set(raised)
    if 'overflow' in new: new.add('inexact')
    if 'underflow' in new: new.add('inexact')
    accrued=prior&new
    pending=new & set(enabled)
    trap=next((flag for flag in priority if flag in pending),None)
    remaining=accrued-set(clear)
    return [sorted(prior),sorted(accrued),trap,sorted(remaining)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('sticky survives', solve(["invalid"],[],["inexact"],[]), [["invalid"],["inexact","invalid"],None,["inexact","invalid"]])
check('overflow implies inexact', solve([],[],["overflow"],[]), [[],["inexact","overflow"],None,["inexact","overflow"]])
check('underflow implies inexact', solve([],[],["underflow"],[]), [[],["inexact","underflow"],None,["inexact","underflow"]])
check('priority', solve([],["overflow","invalid"],["overflow","invalid"],[]), [[],["inexact","invalid","overflow"],"invalid",["inexact","invalid","overflow"]])
check('old flag no retrap', solve(["invalid"],["invalid"],["inexact"],[]), [["invalid"],["inexact","invalid"],None,["inexact","invalid"]])
check('clear after trap', solve([],["divzero"],["divzero"],["divzero"]), [[],["divzero"],"divzero",[]])
check('selective clear', solve(["invalid","inexact"],[],[],["inexact"]), [["inexact","invalid"],["inexact","invalid"],None,["invalid"]])
check('masked flag still sticky', solve([],[],["divzero"],[]), [[],["divzero"],None,["divzero"]])
check('five distinct flag sets', solve([],[],["invalid","divzero","inexact","underflow","overflow"][:N],[]), [[],sorted(["invalid","divzero","inexact","underflow","overflow"][:N]),None,sorted(["invalid","divzero","inexact","underflow","overflow"][:N])])
check('empty operation', solve(["inexact"] if N%2 else ["invalid"],[],[],[]), [["inexact"] if N%2 else ["invalid"],["inexact"] if N%2 else ["invalid"],None,["inexact"] if N%2 else ["invalid"]])
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
sticky survives[['invalid'], [], None, []][['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']]Failed
overflow implies inexact[[], [], None, []][[], ['inexact', 'overflow'], None, ['inexact', 'overflow']]Failed
underflow implies inexact[[], [], None, []][[], ['inexact', 'underflow'], None, ['inexact', 'underflow']]Failed
priority[[], [], 'invalid', []][[], ['inexact', 'invalid', 'overflow'], 'invalid', ['inexact', 'invalid', 'overflow']]Failed
old flag no retrap[['invalid'], [], None, []][['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']]Failed
clear after trap[[], [], 'divzero', []][[], ['divzero'], 'divzero', []]Failed
selective clear[['inexact', 'invalid'], [], None, []][['inexact', 'invalid'], ['inexact', 'invalid'], None, ['invalid']]Failed
masked flag still sticky[[], [], None, []][[], ['divzero'], None, ['divzero']]Failed
five distinct flag sets[[], [], None, []][[], ['invalid'], None, ['invalid']]Failed
empty operation[['inexact'], [], None, []][['inexact'], ['inexact'], None, ['inexact']]Failed

SHA-256 / a6043d32725c595e47afe49a93d13d3e8b938651d048ec06f42c2ea6c4d6ace2

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(sticky, enabled, raised, clear):
    priority=['invalid','divzero','overflow','underflow','inexact']
    prior=set(sticky)
    new=set(raised)
    if 'overflow' in new: new.add('inexact')
    if 'underflow' in new: new.add('inexact')
    accrued=prior|new
    pending=new & set(enabled)
    trap=next((flag for flag in priority if flag in pending),None)
    remaining=accrued-set(clear)
    return [sorted(prior),sorted(accrued),trap,sorted(remaining)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('sticky survives', solve(["invalid"],[],["inexact"],[]), [["invalid"],["inexact","invalid"],None,["inexact","invalid"]])
check('overflow implies inexact', solve([],[],["overflow"],[]), [[],["inexact","overflow"],None,["inexact","overflow"]])
check('underflow implies inexact', solve([],[],["underflow"],[]), [[],["inexact","underflow"],None,["inexact","underflow"]])
check('priority', solve([],["overflow","invalid"],["overflow","invalid"],[]), [[],["inexact","invalid","overflow"],"invalid",["inexact","invalid","overflow"]])
check('old flag no retrap', solve(["invalid"],["invalid"],["inexact"],[]), [["invalid"],["inexact","invalid"],None,["inexact","invalid"]])
check('clear after trap', solve([],["divzero"],["divzero"],["divzero"]), [[],["divzero"],"divzero",[]])
check('selective clear', solve(["invalid","inexact"],[],[],["inexact"]), [["inexact","invalid"],["inexact","invalid"],None,["invalid"]])
check('masked flag still sticky', solve([],[],["divzero"],[]), [[],["divzero"],None,["divzero"]])
check('five distinct flag sets', solve([],[],["invalid","divzero","inexact","underflow","overflow"][:N],[]), [[],sorted(["invalid","divzero","inexact","underflow","overflow"][:N]),None,sorted(["invalid","divzero","inexact","underflow","overflow"][:N])])
check('empty operation', solve(["inexact"] if N%2 else ["invalid"],[],[],[]), [["inexact"] if N%2 else ["invalid"],["inexact"] if N%2 else ["invalid"],None,["inexact"] if N%2 else ["invalid"]])
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
sticky survives[['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']][['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']]Passed
overflow implies inexact[[], ['inexact', 'overflow'], None, ['inexact', 'overflow']][[], ['inexact', 'overflow'], None, ['inexact', 'overflow']]Passed
underflow implies inexact[[], ['inexact', 'underflow'], None, ['inexact', 'underflow']][[], ['inexact', 'underflow'], None, ['inexact', 'underflow']]Passed
priority[[], ['inexact', 'invalid', 'overflow'], 'invalid', ['inexact', 'invalid', 'overflow']][[], ['inexact', 'invalid', 'overflow'], 'invalid', ['inexact', 'invalid', 'overflow']]Passed
old flag no retrap[['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']][['invalid'], ['inexact', 'invalid'], None, ['inexact', 'invalid']]Passed
clear after trap[[], ['divzero'], 'divzero', []][[], ['divzero'], 'divzero', []]Passed
selective clear[['inexact', 'invalid'], ['inexact', 'invalid'], None, ['invalid']][['inexact', 'invalid'], ['inexact', 'invalid'], None, ['invalid']]Passed
masked flag still sticky[[], ['divzero'], None, ['divzero']][[], ['divzero'], None, ['divzero']]Passed
five distinct flag sets[[], ['invalid'], None, ['invalid']][[], ['invalid'], None, ['invalid']]Passed
empty operation[['inexact'], ['inexact'], None, ['inexact']][['inexact'], ['inexact'], None, ['inexact']]Passed

SHA-256 / 8c5448c45e7db988fee6d1d3a4465b7ef7ea27f47429fd410fe793b4f9f41077

Verification & scope

Controlled binary64 or explicitly stipulated miniature format; no hardware exception flags or platform floating environment are modeled. 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:37.013968+00:00.

Case digest / 63930e52a3ad647bdd82a06d40babf19f51477fcf77b24758d06914107b95e3b