Minimum Claim-Breaking Witnesses

Direct minimum-distance witnesses that break threshold claims.

class updatesupport.breaking.ClaimBreakingCellShift(public_value, state, target_value, observed_mass, witness_mass, mass_change, target_contribution_change)[source]

Bases: object

Observed-to-witness change for one retained hidden cell.

Parameters:
public_value: Hashable
state: Hashable
target_value: float
observed_mass: float
witness_mass: float
mass_change: float
target_contribution_change: float
as_dict()[source]
Return type:

dict[str, Any]

class updatesupport.breaking.ClaimBreakingTransfer(public_value, source_state, destination_state, mass, source_target, destination_target, target_change)[source]

Bases: object

Mass transfer between two hidden cells in one public fiber.

Parameters:
public_value: Hashable
source_state: Hashable
destination_state: Hashable
mass: float
source_target: float
destination_target: float
target_change: float
as_dict()[source]
Return type:

dict[str, Any]

class updatesupport.breaking.MinimumClaimBreakingWitnessReport(title, claim_name, public_columns, hidden_columns, target, decision, status, distance_metric, distance, witness_tv_distance, threshold_margin, breaking_boundary, observed_value, observed_decision, witness_value, witness_decision, public_law_error, solver, solver_status, exact, cells=(), transfers=(), limitations=())[source]

Bases: ReportArtifactMixin

Closest fixed-public hidden composition that falsifies a claim rule.

Parameters:
title: str
claim_name: str
public_columns: tuple[str, ...]
hidden_columns: tuple[str, ...]
target: str
decision: DecisionRule
status: str
distance_metric: str
distance: float | None
witness_tv_distance: float | None
threshold_margin: float
breaking_boundary: float
observed_value: float
observed_decision: str
witness_value: float | None
witness_decision: str | None
public_law_error: float | None
solver: str
solver_status: str
exact: bool
cells: tuple[ClaimBreakingCellShift, ...] = ()
transfers: tuple[ClaimBreakingTransfer, ...] = ()
limitations: tuple[str, ...] = ()
property found: bool
property total_transferred_mass: float
as_dict()[source]
Return type:

dict[str, Any]

to_tables()[source]

Return summary, cell-shift, transfer, and limitation tables.

Return type:

dict[str, tuple[dict[str, Any], …]]

to_markdown()[source]

Render an analyst-facing interpretation of the closest witness.

Return type:

str

updatesupport.breaking.minimum_claim_breaking_witness(data, claim, *, distance='tv', covariance=None, threshold_margin=1e-08, solver=None, solver_options=None, title=None)[source]

Find the closest fixed-public recomposition that fails a claim rule.

The first-cut inverse problem uses the retained hidden-cell support and the observed public law. It does not impose the claim’s forward Q preset beyond those public-law constraints.

Parameters:
  • data (Any)

  • claim (ClaimSpec | Mapping[str, Any])

  • distance (str)

  • covariance (Mapping[tuple[Hashable, Hashable], float] | Sequence[Sequence[float]] | None)

  • threshold_margin (float)

  • solver (str | None)

  • solver_options (Mapping[str, Any] | None)

  • title (str | None)

Return type:

MinimumClaimBreakingWitnessReport