# CorpusFetch Method Slice (Zero-Prose Python Stdlib Reference) # Canonical Residual: https://corpusfetch.com/c/how-must-an-instance-reason-about-infinite-tailed-consequences-of-finite-actions.md # Remnant Warrant: https://corpusfetch.com/c/how-must-an-instance-reason-about-infinite-tailed-consequences-of-finite-actions.warrant.json # Markdown SHA-256: 942cfc42f9553e0eb2c91b6f264c6c7f5f623b936d95d0e088697a2e97e16523 # Code AST SHA-256: 693ee48385f9606b30b3412d9a563fc6a3c69f4ab9ab2e45525926bd92ed35c3 # Verified Classes: TailRiskVerdict, ActionTailProfile, TailRiskState, TailRiskPolicy, TailRiskManifest, InfiniteTailGuard # Defensive Guards: 0 fail-closed invariants (zero external deps) from dataclasses import dataclass from enum import Enum, auto import hashlib import json class TailRiskVerdict(Enum): BOUNDED_CONSEQUENCES = auto() TAIL_WITHIN_BUDGET = auto() TAIL_EXCEEDS_BUDGET = auto() COMPOUNDED_TAIL_RISK = auto() @dataclass(frozen=True) class ActionTailProfile: action_id: str has_unbounded_tail: bool tail_probability: float # P(consequence > threshold) tail_magnitude_estimate: float # expected magnitude given tail is_always_reversible: bool @dataclass(frozen=True) class TailRiskState: actions: tuple[ActionTailProfile, ...] tail_risk_budget: float # max acceptable cumulative tail probability threshold_magnitude: float @dataclass(frozen=True) class TailRiskPolicy: require_worst_case_bounding: bool @dataclass(frozen=True) class TailRiskManifest: verdict: TailRiskVerdict cumulative_tail_probability: float directive: str manifest_digest: str class InfiniteTailGuard: @staticmethod def _hash(data: str) -> str: return hashlib.sha256(data.encode("utf-8")).hexdigest() @classmethod def evaluate_actions( cls, state: TailRiskState, policy: TailRiskPolicy ) -> TailRiskManifest: # Gate 1: Any unbounded tails? unbounded = [a for a in state.actions if a.has_unbounded_tail] if not unbounded: digest = cls._hash(json.dumps({ "actions": str(len(state.actions)), "tails": "BOUNDED" }, sort_keys=True)) return TailRiskManifest( verdict=TailRiskVerdict.BOUNDED_CONSEQUENCES, cumulative_tail_probability=0.0, directive=f"PROCEED: All {len(state.actions)} actions have bounded consequences.", manifest_digest=digest ) # Gate 2: Reversibility non_reversible_unbounded = [a for a in unbounded if not a.is_always_reversible] if not non_reversible_unbounded: digest = cls._hash(json.dumps({ "unbounded": str(len(unbounded)), "reversible": "ALL" }, sort_keys=True)) return TailRiskManifest( verdict=TailRiskVerdict.TAIL_WITHIN_BUDGET, cumulative_tail_probability=0.0, directive=f"PROCEED: Unbounded tails are all reversible.", manifest_digest=digest ) # Gate 3: Compounding cumulative_tail_prob = 1.0 for action in non_reversible_unbounded: cumulative_tail_prob *= (1.0 - action.tail_probability) cumulative_tail_prob = 1.0 - cumulative_tail_prob if cumulative_tail_prob > state.tail_risk_budget: return TailRiskManifest( verdict=TailRiskVerdict.COMPOUNDED_TAIL_RISK, cumulative_tail_probability=cumulative_tail_prob, directive=f"HALT: Cumulative tail probability {cumulative_tail_prob:.4f} > {state.tail_risk_budget:.4f}.", manifest_digest=cls._hash(f"COMPOUNDED:{cumulative_tail_prob:.4f}") ) # Gate 4: Within budget digest = cls._hash(json.dumps({ "unbounded_non_reversible": str(len(non_reversible_unbounded)), "cumulative_tail": f"{cumulative_tail_prob:.4f}", "budget": f"{state.tail_risk_budget:.4f}" }, sort_keys=True)) return TailRiskManifest( verdict=TailRiskVerdict.TAIL_WITHIN_BUDGET, cumulative_tail_probability=cumulative_tail_prob, directive=f"PROCEED: Cumulative tail probability {cumulative_tail_prob:.4f} within budget {state.tail_risk_budget:.4f}.", manifest_digest=digest )