Positive Ehrenfeucht–Fraïssé games
Lax503819.PositiveGames · concepts/Lax503819/PositiveGames.lean · lax-503819
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Duplicator must preserve the order and equality of selected positions in both directions, and the letter order from the first word to the second. In each round Spoiler selects a position in either word; Duplicator responds in the other. expresses existence of a winning strategy recursively. A move in an empty word is unavailable, while inability to respond loses.
The two statements are the word versions of Theorem 3.7 and Corollary 3.8. The formula characterization includes previously selected positions. The language characterization requires a finite alphabet and a single uniform round bound for all pairs of words.
Concept map
Evidence
Lean source view on GitHub
| 1 | import Lax503819.PositiveLogic |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Positive Ehrenfeucht–Fraïssé games |
| 6 | type: theorem |
| 7 | --- |
| 8 | Duplicator must preserve the order and equality of selected positions in both |
| 9 | directions, and the letter order from the first word to the second. In each |
| 10 | round Spoiler selects a position in either word; Duplicator responds in the |
| 11 | other. `Survives` expresses existence of a winning strategy recursively. |
| 12 | A move in an empty word is unavailable, while inability to respond loses. |
| 13 | |
| 14 | The two statements are the word versions of Theorem 3.7 and Corollary 3.8. |
| 15 | The formula characterization includes previously selected positions. The |
| 16 | language characterization requires a finite alphabet and a single uniform |
| 17 | round bound for all pairs of words. |
| 18 | -/ |
| 19 | |
| 20 | namespace Lax503819.PositiveGames |
| 21 | |
| 22 | open Lax503819.Words Lax503819.PositiveLogic |
| 23 | |
| 24 | def Valid {A : Type} [LE A] {u v : List A} {k : ℕ} |
| 25 | (α : Fin k → Position u) (β : Fin k → Position v) : Prop := |
| 26 | (∀ i, u.get (α i) ≤ v.get (β i)) ∧ |
| 27 | (∀ i j, α i ≤ α j ↔ β i ≤ β j) |
| 28 | |
| 29 | def Survives {A : Type} [LE A] (u v : List A) : |
| 30 | ℕ → {k : ℕ} → (Fin k → Position u) → (Fin k → Position v) → Prop |
| 31 | | 0, _, α, β => Valid α β |
| 32 | | r + 1, _, α, β => Valid α β ∧ |
| 33 | (∀ x : Position u, ∃ y : Position v, |
| 34 | Survives u v r (Fin.cons x α) (Fin.cons y β)) ∧ |
| 35 | (∀ y : Position v, ∃ x : Position u, |
| 36 | Survives u v r (Fin.cons x α) (Fin.cons y β)) |
| 37 | |
| 38 | def DuplicatorWins {A : Type} [LE A] (r : ℕ) (u v : List A) : Prop := |
| 39 | Survives u v r (k := 0) Fin.elim0 Fin.elim0 |
| 40 | |
| 41 | axiom survives_iff_formulas {A : Type} [PartialOrder A] [Fintype A] |
| 42 | (u v : List A) (r k : ℕ) |
| 43 | (α : Fin k → Position u) (β : Fin k → Position v) : |
| 44 | Survives u v r α β ↔ |
| 45 | ∀ φ : Formula A k, φ.rank ≤ r → φ.Realize u α → φ.Realize v β |
| 46 | |
| 47 | axiom definable_iff_bounded_games {A : Type} [PartialOrder A] [Fintype A] |
| 48 | (L : Language A) : |
| 49 | Definable L ↔ ∃ r : ℕ, ∀ u v, u ∈ L → v ∉ L → ¬ DuplicatorWins r u v |
| 50 | |
| 51 | end Lax503819.PositiveGames |
| 52 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments