Prover winning the GL-game builds a GL-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
- rewind_history g n = match n_def : ↑n with | 0 => g | m.succ => rewind_history (rewind_history_one_step g ⋯) ⟨m, ⋯⟩
Instances For
Rewinding the history n steps is still in the cone of the game.
Defines the premise when we do not have a repeat.
Equations
Instances For
The sequent at the premise defined by next_next 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.
The sequent at the one 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.
Instances For
The sequent at the premise defined by rep_next is the sequent Δ which we expect.
Define the list of premises from a Builder move.
Equations
Instances For
If Prover has a winning strategy in the game starting from Γ, then there is a proof of `Γ!
Builder winning the GL-game builds a GL-countermodel. #
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.
Maximal Paths. #
The type of a maximal path in the game.
- chain : List.IsChain non_box_move self.list
- max : ¬∃ (z : Game.Pos), non_box_move (self.list.getLast ⋯) z
Instances For
Instances For
Instances For
Maximal paths always start from a move which is Prover's turn.
Maximal paths always end in a move which is Prover's turn.
If Builder is winning, there is always a maximal path.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If Builder is winning, the List from make_path_from is nonempty.
If Builder is winning, the List from make_path_from is a chain.
If Builder is winning, the List from make_path_from is maximal.
If Builder is winning, every move in the list from make_path_from is in the cone.
If Builder is winning, the starting move or any move after a box move has a maximal path.
Equations
- first_sequent π = prover_sequent π.first ⋯
Instances For
Equations
- last_sequent h π = prover_sequent π.last ⋯
Instances For
Two maximal paths are related if two steps in the game can connect tail to head.
Equations
- path_relation Γ strat π₁ π₂ = Relation.Comp Move Move π₁.last π₂.first
Instances For
Interesting for MathLib?
The definition of the GL-model (M,R,V) we will use as the countermodel. M, R, V are all
defined as expected (except R is transtive), transitivity is immediate, and converse
well-foundedness follow from well-foundedness of the game.
Equations
- game_b_model Γ h = { V := fun (π : MaximalPath Γ strat) (n : ℕ) => at n ∉ last_sequent h π, R := Relation.TransGen (path_relation Γ strat), trans := ⋯, con_wf := ⋯ }
Instances For
Helper for ◇ case of builder_win_strong.
Helper for ◇ case of builder_win_strong.
Helper for ◇ case of builder_win_strong.
Helper for ◇ case of builder_win_strong.
Helper for ◇ case of builder_win_strong.
If Builder has a winning strategy, then for any maximal path π, if φ appears in π then
the model game_b_model which we previously defined will falsify φ at π.
Equations
- ⋯ = ⋯
Instances For
If Builder has a winning strategy in the game starting from Γ, then there is a countermodel of `Γ!
Completeness! Comes as a corrolary of gamedet, prover_win_builds_proof, and
builder_win_builds_model.