Documentation

CombinatorialGames.Game.Impartial.Multiplication

Multiplication of impartial games #

We prove here that the product of impartial games is impartial, and that its Grundy value equals the product of the Grundy values of its factors. This implies that game multiplication is algebraically well-behaved on impartial games, i.e. it respects equivalence, and there are no zero divisors.

@[simp]
theorem IGame.nim_mul_equiv (a b : Nimber) :
nim a * nim bnim (a * b)
theorem IGame.Impartial.mul_equiv_zero {x y : IGame} [x.Impartial] [y.Impartial] :
x * y0 x0 y0
theorem IGame.Impartial.mul_congr_left {y x₁ x₂ : IGame} [y.Impartial] [x₁.Impartial] [x₂.Impartial] (he : x₁x₂) :
x₁ * yx₂ * y
theorem IGame.Impartial.mul_congr_right {x y₁ y₂ : IGame} [x.Impartial] [y₁.Impartial] [y₂.Impartial] (he : y₁y₂) :
x * y₁x * y₂
theorem IGame.Impartial.mul_congr {x₁ x₂ y₁ y₂ : IGame} [x₁.Impartial] [x₂.Impartial] [y₁.Impartial] [y₂.Impartial] (hx : x₁x₂) (hy : y₁y₂) :
x₁ * y₁x₂ * y₂