Prover winning the GL-split game builds a GL-split proof. #
If Prover has a winning strategy in the game starting from Γ, then there is a proof
of Γ, proven in prover_win_builds_proof; all other definitions and proofs in this
file are helpers.
Rewinding the history one step is still in the cone of the game.
Rewinding the history n steps.
Equations
- Lean4GlCoalgebras.Split.rewindHistory g n = match n_def : ↑n with | 0 => g | m.succ => Lean4GlCoalgebras.Split.rewindHistory (Lean4GlCoalgebras.Split.rewindHistoryOneStep g ⋯) ⟨m, ⋯⟩
Instances For
Rewinding the history n steps is still in the cone of the game.
This is the type of the coalgebra we will use to build the proof of Γ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary declaration used in the GL coalgebra development.
Equations
Instances For
Defines the premise when we do not have a repeat.
Equations
Instances For
The sequent at the premise defined by nextNext is the sequent Δ which we expect.
Comparison of rule app history length and sequent history length.
Defines the premise when we do not have a repeat.
Equations
Instances For
Rewinding the game one step changes the player.
Rewinding an even number of moves is the same players turn, rewinding an odd number is other players turn.
The sequent at the one step rewind can be found in the history.
The rule application at a builder position in the cone points to the head sequent.
The sequent at the n step rewind can be found in the history.
The sequent at the n step rewind can be found in the history.
Defines the premise when we have a repeat.
Equations
- Lean4GlCoalgebras.Split.repNext Γ g rep = ⟨Lean4GlCoalgebras.Split.repPos g rep, ⋯⟩
Instances For
The sequent at the premise defined by repNext is the sequent Δ which we expect.
Define the list of premises from a Builder move.
Equations
- One or more equations did not get rendered due to their size.
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inl val, fst, snd), ⋯⟩ h = ⋯.elim
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inr (Lean4GlCoalgebras.Split.RuleApp.topₗ Δ a), Γs, Rs), property_2⟩ h = []
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inr (Lean4GlCoalgebras.Split.RuleApp.topᵣ Δ a), Γs, Rs), property_2⟩ h = []
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inr (Lean4GlCoalgebras.Split.RuleApp.axₗₗ Δ n a), Γs, Rs), property_2⟩ h = []
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inr (Lean4GlCoalgebras.Split.RuleApp.axₗᵣ Δ n a), Γs, Rs), property_2⟩ h = []
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inr (Lean4GlCoalgebras.Split.RuleApp.axᵣₗ Δ n a), Γs, Rs), property_2⟩ h = []
- Lean4GlCoalgebras.Split.builderMovePremises ⟨(Sum.inr (Lean4GlCoalgebras.Split.RuleApp.axᵣᵣ Δ n a), Γs, Rs), property_2⟩ h = []
Instances For
If Prover has a winning strategy in the game from Γ, then there is a proof of Γ.
Builder winning the GL-split game builds a GL-model. #
If Builder has a winning strategy in the game starting from Γ, then there is a proof
of Γ, proven in builder_win_builds_model, all other definitions and proofs in this
file are helpers.
Auxiliary declaration used in the GL coalgebra development.
Equations
Instances For
Auxiliary declaration used in the GL coalgebra development.
Auxiliary declaration used in the GL coalgebra development.
- chain : List.IsChain nonBoxMove self.list
- max : ¬∃ (z : Game.Pos), nonBoxMove (self.list.getLast ⋯) z
Instances For
Auxiliary declaration used in the GL coalgebra development.
Instances For
Auxiliary declaration used in the GL coalgebra development.
Instances For
Auxiliary declaration used in the GL coalgebra development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary declaration used in the GL coalgebra development.
Equations
Instances For
Auxiliary declaration used in the GL coalgebra development.
Equations
Instances For
Auxiliary declaration used in the GL coalgebra development.
Equations
Instances For
Two maximal paths are related if two steps in the game can connect tail to head.
Equations
Instances For
Builds the Kripke counter-model from a Builder winning strategy.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A terminal split rule application cannot be available at the last node of a Builder-winning path.
A non-box split rule application cannot extend the last node of a maximal path.
If Builder wins, no formula in the sequents at Prover positions evaluates to true.
Left-side last-node case for builder_win_strong.
Left-side successor case for builder_win_strong.
Right-side last-node case for builder_win_strong.
Right-side successor case for builder_win_strong.
If Builder wins, there exists a counter-model.
Completeness! Comes as a corrolary of gamedet, prover_win_builds_proof, and
builder_win_builds_model.
Corollary of completeness, used in Interpolants.lean.