Simplest extension theorems #
We say that a nimber x is a group when the lower set Iio x is closed under addition. Likewise,
we say that x is a ring when Iio x is closed under addition and multiplication, and we say that
x is a field when it's closed under addition, multiplication, and division.
The simplest extension theorem states:
- If
xis not a group, thenxcan be written asy + zfor somey, z < x. - If
xis a group but not a ring, thenxcan be written asy * zfor somey, z < x. - If
xis a ring but not a field, thenxcan be written asy⁻¹for somey < x. - If
xis a field that isn't algebraically closed, thenxis the root of some polynomial with coefficients< x.
This file proves the first 3/4 parts of the theorem. The last part will be proven in
CombinatorialGames.Nimber.SimplestExtension.Algebraic.
The proof follows Aaron Siegel's Combinatorial Games, pp. 440-444.
Mathlib lemmas #
Order lemmas #
Ordinal lemmas #
Groups #
Add two nimbers as ordinal numbers.
Equations
- Nimber.«term_+ₒ_» = Lean.ParserDescr.trailingNode `Nimber.«term_+ₒ_» 65 65 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "+ₒ") (Lean.ParserDescr.cat `term 66))
Instances For
A version of IsGroup.mul_add_eq_of_lt stated in terms of Ordinal.
A version of IsGroup.add_eq_of_lt stated in terms of Ordinal.
A version of isGroup_iff_zero_or_mem_range_two_opow stated in terms of Ordinal.
Rings #
Multiply two nimbers as ordinal numbers.
Equations
- Nimber.«term_*ₒ_» = Lean.ParserDescr.trailingNode `Nimber.«term_*ₒ_» 70 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "*ₒ") (Lean.ParserDescr.cat `term 71))
Instances For
A nimber x is a ring when Iio x is closed under addition and multiplication. Note that 0
is a ring under this definition.
Instances For
A version of IsGroup.mul_eq_of_lt stated in terms of Ordinal.
Fields #
A nimber x is a field when Iio x is closed under addition, multiplication, and division.
Note that 0 and 1 are fields under this definition.
For simplicity, the constructor takes a redundant y ≠ 0 assumption. The lemma IsField.inv_lt
proves that this theorem applies when y = 0 as well.