Game addition relation #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines, given relations rα : α → α → Prop
and rβ : β → β → Prop
, a relation
prod.game_add
on pairs, such that game_add rα rβ x y
iff x
can be reached from y
by
decreasing either entry (with respect to rα
and rβ
). It is so called since it models the
subsequency relation on the addition of combinatorial games.
We also define sym2.game_add
, which is the unordered pair analog of prod.game_add
.
Main definitions and results #
-
prod.game_add
: the game addition relation on ordered pairs. -
well_founded.prod_game_add
: formalizes induction on ordered pairs, where exactly one entry decreases at a time. -
sym2.game_add
: the game addition relation on unordered pairs. -
well_founded.sym2_game_add
: formalizes induction on unordered pairs, where exactly one entry decreases at a time.
- fst : ∀ {α : Type u_1} {β : Type u_2} {rα : α → α → Prop} {rβ : β → β → Prop} {a₁ a₂ : α} {b : β}, rα a₁ a₂ → prod.game_add rα rβ (a₁, b) (a₂, b)
- snd : ∀ {α : Type u_1} {β : Type u_2} {rα : α → α → Prop} {rβ : β → β → Prop} {a : α} {b₁ b₂ : β}, rβ b₁ b₂ → prod.game_add rα rβ (a, b₁) (a, b₂)
prod.game_add rα rβ x y
means that x
can be reached from y
by decreasing either entry with
respect to the relations rα
and rβ
.
It is so called, as it models game addition within combinatorial game theory. If rα a₁ a₂
means
that a₂ ⟶ a₁
is a valid move in game α
, and rβ b₁ b₂
means that b₂ ⟶ b₁
is a valid move
in game β
, then game_add rα rβ
specifies the valid moves in the juxtaposition of α
and β
:
the player is free to choose one of the games and make a move in it, while leaving the other game
unchanged.
See sym2.game_add
for the unordered pair analog.
prod.game_add
is a subrelation
of prod.lex
.
prod.rprod
is a subrelation of the transitive closure of prod.game_add
.
If a
is accessible under rα
and b
is accessible under rβ
, then (a, b)
is
accessible under prod.game_add rα rβ
. Notice that prod.lex_accessible
requires the
stronger condition ∀ b, acc rβ b
.
The prod.game_add
relation on well-founded inputs is well-founded.
In particular, the sum of two well-founded games is well-founded.
Recursion on the well-founded prod.game_add
relation.
Note that it's strictly more general to recurse on the lexicographic order instead.
Induction on the well-founded prod.game_add
relation.
Note that it's strictly more general to induct on the lexicographic order instead.
sym2.game_add rα x y
means that x
can be reached from y
by decreasing either entry with
respect to the relation rα
.
See prod.game_add
for the ordered pair analog.
Equations
- sym2.game_add rα = ⇑sym2.lift₂ ⟨λ (a₁ b₁ a₂ b₂ : α), prod.game_add rα rα (a₁, b₁) (a₂, b₂) ∨ prod.game_add rα rα (b₁, a₁) (a₂, b₂), _⟩
The sym2.game_add
relation on well-founded inputs is well-founded.
Recursion on the well-founded sym2.game_add
relation.
Equations
- sym2.game_add.fix hr IH a b = _.fix (λ (_x : α × α), sym2.game_add.fix._match_1 IH _x) (a, b)
- sym2.game_add.fix._match_1 IH (x₁, x₂) = λ (IH' : Π (y : α × α), (λ (a b : α × α), ⟨λ (a₁ b₁ a₂ b₂ : α), prod.game_add rα rα (a₁, b₁) (a₂, b₂) ∨ prod.game_add rα rα (b₁, a₁) (a₂, b₂), _⟩.val a.fst a.snd b.fst b.snd) y (x₁, x₂) → (λ (x : α × α), C x.fst x.snd) y), IH x₁ x₂ (λ (a' b' : α), IH' (a', b'))
Induction on the well-founded sym2.game_add
relation.