--- id: DistributedTendermintEpochTransitionSafetyMasterContract language: en section: distributed source: Verification/DistributedTendermintEpochTransitionSafetyMasterContract.lean source_sha256: f904ef453c8e2103aaa77b9db5a785b31e3ca17f5d8cda7aea1f71f1d80926c2 novelty: not-assessed status: reviewed --- [Section](../distributed/README.md) · [Lean](../../Verification/DistributedTendermintEpochTransitionSafetyMasterContract.lean) # Composite epoch-transition safety and accountable collection Module 200 composes the checked components 179, 192, 194–199. Its direct import is DistributedTendermintHandoverRoundInduction (199); the existing dependencies provide historical attribution, stable IDs, quorum intersection, lock adoption and unbonding. The result is a conditional composition, not unconditional safety or inevitable physical punishment for every cross-epoch disagreement. ## Unified context and actual execution EpochTransitionMasterContext contains the old/new identity-bearing configurations, threshold mode, fault set, source polka/commit, adopted local states, target vote transcript, history registry, unbonding ledger, window and rate. Consensus weights and current slashable balances are distinct: a historical weight does not prove that funds still exist. Historical resolution must select this exact old config. initialState fixes the current config to the old epoch. debit performs the real epoch_transition to the next config and applyHistorical using the source height and actual Payload. pipeline then closes admission and finalizes matured withdrawals. It does not advance the clock. Closing admission asserts completeness of the supplied slot input; it does not deliver unseen certificates. The payload supplies neither the historical identity map nor a caller-selected guilty set. ## Conditional safety SafetyConditions lists the actual premises of module 199: accepted source polka, linked source commit at the same height/value, old quorum, normalized new weights, the matching honest-overlap bound, actual adoption, and honest prevote/precommit history rules. cross_epoch_master_safety_branch proves Agreement for every target round. Both strict >2/3 and non-strict >=2/3 semantics remain those of modules 197–199. The result cannot be combined with a conflicting commit while retaining all these premises. Failure of a premise is not automatically a slashable offence. ## Checked collection AcceptedEvidence requires unique historical resolution and successful module-179 attribute_evidence on the actual reference/evidence. CollectionReady additionally requires an open admission phase, h<=now<=h+window, 0