The GL-split game. #
Builder-Prover game for constructive counter-models/proofs. Builder gets a rule application R and
plays an applicable sequent Γ in order to construct a counter-model. Prover get a sequent Γ
and plays rule applications R in order to construct a proof.
Auxiliary declaration used in the GL coalgebra development.
Instances For
Auxiliary declaration used in the GL coalgebra development.
Instances For
The available rule applications for a sequent Γ.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The sequents possible after a rule application R.
Equations
- (Lean4GlCoalgebras.Split.RuleApp.topₗ Δ a).splitSequents = ∅
- (Lean4GlCoalgebras.Split.RuleApp.topᵣ Δ a).splitSequents = ∅
- (Lean4GlCoalgebras.Split.RuleApp.axₗₗ Δ n a).splitSequents = ∅
- (Lean4GlCoalgebras.Split.RuleApp.axₗᵣ Δ n a).splitSequents = ∅
- (Lean4GlCoalgebras.Split.RuleApp.axᵣₗ Δ n a).splitSequents = ∅
- (Lean4GlCoalgebras.Split.RuleApp.axᵣᵣ Δ n a).splitSequents = ∅
- (Lean4GlCoalgebras.Split.RuleApp.andₗ Δ A B a).splitSequents = {Δ \ {Sum.inl (A&B)} ∪ {Sum.inl A}, Δ \ {Sum.inl (A&B)} ∪ {Sum.inl B}}
- (Lean4GlCoalgebras.Split.RuleApp.andᵣ Δ A B a).splitSequents = {Δ \ {Sum.inr (A&B)} ∪ {Sum.inr A}, Δ \ {Sum.inr (A&B)} ∪ {Sum.inr B}}
- (Lean4GlCoalgebras.Split.RuleApp.orₗ Δ A B a).splitSequents = {Δ \ {Sum.inl (A v B)} ∪ {Sum.inl A, Sum.inl B}}
- (Lean4GlCoalgebras.Split.RuleApp.orᵣ Δ A B a).splitSequents = {Δ \ {Sum.inr (A v B)} ∪ {Sum.inr A, Sum.inr B}}
- (Lean4GlCoalgebras.Split.RuleApp.boxₗ Δ A a).splitSequents = {(Δ \ {Sum.inl (□A)}).D ∪ {Sum.inl A}}
- (Lean4GlCoalgebras.Split.RuleApp.boxᵣ Δ A a).splitSequents = {(Δ \ {Sum.inr (□A)}).D ∪ {Sum.inr A}}
Instances For
Note: the game stores the history of which rule applications have come prior.
Equations
Instances For
Auxiliary declaration used in the GL coalgebra development.
- prover {R : RuleApp} {Rs : List RuleApp} {Γ : SplitSequent} {Γs : List SplitSequent} : R ∈ SplitSequent.ruleApps Γ → Move (Sum.inl Γ, Γs, Rs) (Sum.inr R, Γ :: Γs, Rs)
- builder {R : RuleApp} {Rs : List RuleApp} {Γ : SplitSequent} {Γs : List SplitSequent} : Γ ∈ R.splitSequents → Γ ∉ Γs → Move (Sum.inr R, Γs, Rs) (Sum.inl Γ, Γs, R :: Rs)
Instances For
Given two consecutive Prover moves, the latter move is in the FL closure of the prior.
The game is converse well-founded.
Auxiliary declaration used in the GL coalgebra development.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Move relation and being in the set of game moves are equivalent.
Auxiliary declaration used in the GL coalgebra development.