Passing and assigning either truth value
Lax783278.Passes · concepts/Lax783278/Passes.lean · lax-783278
No public endorsements yet.
Loading review…
Sign in with ORCIDNatural Language Statement
Theorem
Lemma 5, in its finite form. Give the two players a shared supply of passes, and allow either player to assign either truth value to a selected unassigned variable. Passing consumes one unit of the supply. Play ends as soon as all variables are assigned, with the same satisfaction rule. For every finite supply, this game has the same winner as ordinary positive CNF, including at intermediate positions. A finite supply avoids infinite plays consisting of passes and covers all passes in the reduction graph.
Concept map
Evidence
Each proof establishes this claim relative to its assumptions.
-
no assumptions
thm✓Lax783278.Passes
Lean source view on GitHub
| 1 | import Lax783278.PositiveCNF |
| 2 | |
| 3 | /-! |
| 4 | --- |
| 5 | title: Passing and assigning either truth value |
| 6 | type: theorem |
| 7 | --- |
| 8 | Lemma 5, in its finite form. Give the two players a shared supply of |
| 9 | passes, and allow either player to assign either truth value to a selected |
| 10 | unassigned variable. Passing consumes one unit of the supply. Play ends |
| 11 | as soon as all variables are assigned, with the same satisfaction rule. |
| 12 | For every finite supply, this game has the same winner as ordinary positive |
| 13 | CNF, including at intermediate positions. A finite supply avoids infinite |
| 14 | plays consisting of passes and covers all passes in the reduction graph. |
| 15 | -/ |
| 16 | |
| 17 | namespace Lax783278.Passes |
| 18 | |
| 19 | open PositiveCNF |
| 20 | |
| 21 | /-- Evaluate the game with passes for a fixed number of remaining rounds. |
| 22 | At a True turn one successful move suffices; at a False turn every legal |
| 23 | move must preserve True's win. Assignments and passes each use one round. -/ |
| 24 | def TrueWinsAfter (φ : Formula) : ℕ → Finset (Fin φ.nvars) → |
| 25 | Finset (Fin φ.nvars) → Bool → ℕ → Prop |
| 26 | | 0, _, T, _, _ => Satisfied φ T |
| 27 | | rounds + 1, U, T, trueTurn, passes => |
| 28 | if U = ∅ then Satisfied φ T |
| 29 | else if trueTurn then |
| 30 | (∃ x ∈ U, ∃ b : Bool, |
| 31 | TrueWinsAfter φ rounds (U.erase x) (if b then insert x T else T) false passes) ∨ |
| 32 | (0 < passes ∧ TrueWinsAfter φ rounds U T false (passes - 1)) |
| 33 | else |
| 34 | (∀ x ∈ U, ∀ b : Bool, |
| 35 | TrueWinsAfter φ rounds (U.erase x) (if b then insert x T else T) true passes) ∧ |
| 36 | (0 < passes → TrueWinsAfter φ rounds U T true (passes - 1)) |
| 37 | |
| 38 | /-- True has a winning strategy with the given supply of passes. |
| 39 | There are at most `U.card + passes` moves before all variables are assigned. -/ |
| 40 | def TrueWins (φ : Formula) (U T : Finset (Fin φ.nvars)) |
| 41 | (trueTurn : Bool) (passes : ℕ) : Prop := |
| 42 | TrueWinsAfter φ (U.card + passes) U T trueTurn passes |
| 43 | |
| 44 | axiom outcome_equivalent (φ : Formula) (U T : Finset (Fin φ.nvars)) |
| 45 | (hd : Disjoint U T) (turn : Bool) (passes : ℕ) : |
| 46 | TrueWins φ U T turn passes ↔ PositiveCNF.TrueWins φ U T turn |
| 47 | |
| 48 | end Lax783278.Passes |
| 49 |
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above.
0 comments