A syntactic runtime step is also a modulo-AC step, using reflexive AC witnesses.
AC-enabled Cordial Miners labels are collection labels, not the configuration label.
Replacing one AC-equivalent payload preserves the no-embedded-configuration list invariant.
AC-equivalence preserves the no-embedded-configuration payload invariant.
AC-equivalence preserves the top-level runtime configuration shape boundary.
Forward form of runtimeConfigShape_acEq_iff.
A clean payload has no Cordial Miners runtime rewrite step inside it.
A clean payload has no Cordial Miners runtime rewrite step modulo AC.
Any ordinary runtime step from a shaped configuration fires at the configuration root.
A modulo-AC runtime step from a shaped configuration chooses a shaped representative and then fires at that representative's root.
A proposal event at the head of the inbox fires the proposal rule.
An order event at the head of the inbox fires the order rule.
A proposal fact at the head of the state collection fires the quorum-approval rule.
A quorum-approval fact at the head of the state collection fires the certificate rule.
A threshold-certificate fact at the head of the state collection fires the finality rule.
A finality fact at the head of the state collection fires the final-leader rule.
Shared decoding fact for derived rules whose LHS observes one state fact and whose RHS adds one derived fact while keeping the observed fact.
The four derived Cordial Miners rules share the same runtime shape.
- qapprove : DerivedKind
- certify : DerivedKind
- finalize : DerivedKind
- finalLead : DerivedKind
Instances For
The precondition fact matched by a derived rule.
Equations
- CordialMiners.Runtime.DerivedKind.qapprove.srcA x✝¹ x✝ = CordialMiners.Runtime.proposeA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.certify.srcA x✝¹ x✝ = CordialMiners.Runtime.qApproveA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalize.srcA x✝¹ x✝ = CordialMiners.Runtime.certThreshA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalLead.srcA x✝¹ x✝ = CordialMiners.Runtime.finalA x✝¹ x✝
Instances For
The fact inserted by a derived rule.
Equations
- CordialMiners.Runtime.DerivedKind.qapprove.dstA x✝¹ x✝ = CordialMiners.Runtime.qApproveA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.certify.dstA x✝¹ x✝ = CordialMiners.Runtime.certThreshA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalize.dstA x✝¹ x✝ = CordialMiners.Runtime.finalA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalLead.dstA x✝¹ x✝ = CordialMiners.Runtime.finalLeaderA x✝¹ x✝
Instances For
The decoded precondition fact for a derived rule.
Equations
- CordialMiners.Runtime.DerivedKind.qapprove.srcFact x✝¹ x✝ = CordialMiners.TrecFact.propose x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.certify.srcFact x✝¹ x✝ = CordialMiners.TrecFact.qApprove x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalize.srcFact x✝¹ x✝ = CordialMiners.TrecFact.certThresh x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalLead.srcFact x✝¹ x✝ = CordialMiners.TrecFact.final x✝¹ x✝
Instances For
The decoded inserted fact for a derived rule.
Equations
- CordialMiners.Runtime.DerivedKind.qapprove.dstFact x✝¹ x✝ = CordialMiners.TrecFact.qApprove x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.certify.dstFact x✝¹ x✝ = CordialMiners.TrecFact.certThresh x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalize.dstFact x✝¹ x✝ = CordialMiners.TrecFact.final x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.finalLead.dstFact x✝¹ x✝ = CordialMiners.TrecFact.finalLeader x✝¹ x✝
Instances For
Select the source or destination side of a derived rule.
Instances For
The AST fact on one side of a derived rule.
Equations
- CordialMiners.Runtime.DerivedKind.sideA CordialMiners.Runtime.DerivedKind.Side.src x✝² x✝¹ x✝ = x✝².srcA x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.sideA CordialMiners.Runtime.DerivedKind.Side.dst x✝² x✝¹ x✝ = x✝².dstA x✝¹ x✝
Instances For
The decoded coarse fact on one side of a derived rule.
Equations
- CordialMiners.Runtime.DerivedKind.sideFact CordialMiners.Runtime.DerivedKind.Side.src x✝² x✝¹ x✝ = x✝².srcFact x✝¹ x✝
- CordialMiners.Runtime.DerivedKind.sideFact CordialMiners.Runtime.DerivedKind.Side.dst x✝² x✝¹ x✝ = x✝².dstFact x✝¹ x✝
Instances For
Derived-rule side ASTs are leaves of the state AC collection.
Decoding either side AST recovers the corresponding coarse fact.
The decoded coarse step for a derived rule.
Any derived Cordial Miners head redex decodes to its corresponding coarse step.
A decoded derived-rule target is a real coarse derived step.
A proposal head redex decodes to the coarse proposal step.
An order head redex decodes to the coarse ordering step.
Adding a state-collection leaf that does not decode is a decoded stutter.
A proposal head redex decodes to a coarse proposal step, or stutters if the event payload is undecodable.
An order head redex decodes to a coarse ordering step, or stutters if the payload is undecodable.
A quorum-approval head redex decodes to the coarse quorum-approval step.
A certificate head redex decodes to the coarse certificate step.
A finality head redex decodes to the coarse finality step.
A final-leader head redex decodes to the coarse final-leader step.
A derived-rule head redex decodes to a coarse derived step, or stutters if its fields are undecodable.
A quorum-approval head redex is backward-sound up to decoded stutter.
A certificate head redex is backward-sound up to decoded stutter.
A finality head redex is backward-sound up to decoded stutter.
A final-leader head redex is backward-sound up to decoded stutter.
A direct root reduction by the Cordial Miners presentation decodes to a coarse step or to a decoded stutter.
A direct contextual runtime step from a shaped configuration decodes to a coarse step or stutter. The shape invariant rules out every strict-subterm protocol redex.
A modulo-AC runtime step from a shaped configuration decodes to a coarse step or stutter whenever the selected decoder is invariant under the runtime AC equivalence.
List decoding respects runtime AC-equivalence when the element decoder does.
Fact decoding respects runtime AC-equivalence when both field decoders do.
State decoding respects runtime AC-equivalence when both field decoders do.
Configuration decoding respects runtime AC-equivalence when both field decoders do.
A modulo-AC runtime step is backward-sound for any field decoders that respect runtime AC.
AC can move the second element of an encoded binary collection to the head.
AC can move the second inbox event to the head while preserving the rest of the configuration.
If a tail fact has been moved to the state head, it can pass the cons head modulo AC.
Any fact in an encoded state list can be moved to the AC head.
A presentation state node whose head is an encoded fact decodes as finite-set insertion.
Moving a state-list fact to the AC head preserves the decoded finite state.
Any event in an encoded inbox can be moved to the AC head.
A modulo-AC step may start from any AC-equivalent left representative.
Encoding the source fact of a derived rule gives the source AST used by the presentation.
Encoding the destination fact of a derived rule gives the destination AST used by the presentation.
Any derived-rule head redex is a runtime step modulo AC.
The state fact inserted by an input event.
Equations
- CordialMiners.Runtime.eventStateFactA eW eH (CordialMiners.Runtime.Event.propose w h) = CordialMiners.Runtime.proposeA (eW w) (eH h)
- CordialMiners.Runtime.eventStateFactA eW eH (CordialMiners.Runtime.Event.order hs) = CordialMiners.Runtime.orderedPrefixPayloadA (CordialMiners.Runtime.encodeListA eH hs)
Instances For
The coarse fact inserted by an input event.
Equations
Instances For
Event state facts are the ordinary AST encodings of their coarse facts.
A decoded input-event target is a real coarse proposal or ordering step.
The target configuration after an input event fires.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An input-event head redex is a runtime step modulo AC.
Any input event in the encoded inbox can fire modulo AC.
Any input event in the encoded inbox has a runtime step whose target decodes to the inserted fact.
Any input event in the encoded inbox decodes to a genuine coarse protocol step.
If a runtime witness decodes to insertion of an already-present fact, it is a decoded stutter.
If an input event adds a fact already decoded in the state, the runtime step is a decoded stutter.
A proposal event anywhere in the encoded inbox can fire modulo AC.
An order event anywhere in the encoded inbox can fire modulo AC.
A headed derived-rule source fact gives the matching runtime step.
A derived fact anywhere in the encoded state can fire its derived rule modulo AC.
A derived fact anywhere in the encoded state has a runtime step whose target decodes to the inserted derived fact.
Any derived-rule precondition in the encoded state decodes to a genuine coarse protocol step.
If a derived rule adds a fact already decoded in the state, the runtime step is a decoded stutter.
A single input event supplied in the inbox has a runtime step whose target decodes to the inserted coarse fact.
A single input event supplied in the inbox has a runtime step that decodes to a coarse protocol step.
A single input event that adds an already-present fact is a decoded stutter.
A derived-rule precondition in a finite state has a runtime step whose target decodes to the corresponding inserted fact.
A derived-rule precondition in a finite state has a runtime step that decodes to a coarse protocol step.
A derived rule that adds an already-present fact is a decoded stutter.
A runtime step witness whose target decodes to a chosen coarse state.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A runtime step witness whose decoded target is a coarse protocol successor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every coarse protocol step has a runtime witness that decodes to its target.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One supplied input event runs to a decoded coarse protocol successor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
One derived-rule precondition fact runs to a decoded coarse protocol successor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A duplicate input event runs to a decoded stutter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A derived rule whose output fact is already present runs to a decoded stutter.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The scoped runtime bridge surface currently proved for the Cordial Miners presentation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every coarse TrecState.Step has a matching runtime step whose target decodes to the coarse target.
The theorem is stated through astToState because runtime collections are multisets while TrecState
is a Finset. Re-adding an existing fact duplicates an AST leaf but decodes to the same finite set.
If the coarse source is reachable, the decoded target produced by the runtime forward witness is reachable too. The proved forward bridge gives this reachability transfer.
Coarse well-formedness transfers to the decoded target of the runtime witness produced by the forward bridge, provided the source state was coarse-reachable.
The proved scoped bridge for the declared Cordial Miners runtime fragments.
The first component is forward completeness for every coarse TrecState.Step. The next two components
are decoded soundness facts for the input-event and derived-rule fragments. The last two components are
decoded stutter facts for duplicate input events and duplicate derived facts. The theorem is not the full
arbitrary-RewStepModAC backward theorem.
A proposal event in the second inbox position can fire modulo AC, leaving the first event pending.