set_theory.game.stateMathlib.SetTheory.Game.State

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -58,7 +58,7 @@ theorem SetTheory.PGame.turnBound_ne_zero_of_left_move {s t : S}
   by
   intro h
   have t := state.left_bound m
-  rw [h] at t 
+  rw [h] at t
   exact Nat.not_succ_le_zero _ t
 #align pgame.turn_bound_ne_zero_of_left_move SetTheory.PGame.turnBound_ne_zero_of_left_move
 -/
@@ -69,7 +69,7 @@ theorem SetTheory.PGame.turnBound_ne_zero_of_right_move {s t : S}
   by
   intro h
   have t := state.right_bound m
-  rw [h] at t 
+  rw [h] at t
   exact Nat.not_succ_le_zero _ t
 #align pgame.turn_bound_ne_zero_of_right_move SetTheory.PGame.turnBound_ne_zero_of_right_move
 -/
@@ -115,23 +115,23 @@ def SetTheory.PGame.ofStateAuxRelabelling :
   | s, 0, 0, hn, hm => by
     dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i ; exfalso
+    · intro i; dsimp at i; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j; dsimp at j ; exfalso
+    · intro j; dsimp at j; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, 0, m + 1, hn, hm => by
     dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i ; exfalso
+    · intro i; dsimp at i; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j; dsimp at j ; exfalso
+    · intro j; dsimp at j; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hn)
   | s, n + 1, 0, hn, hm => by
     dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i ; exfalso
+    · intro i; dsimp at i; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hm)
-    · intro j; dsimp at j ; exfalso
+    · intro j; dsimp at j; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, n + 1, m + 1, hn, hm => by
     dsimp [SetTheory.PGame.ofStateAux]
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.SetTheory.Game.Short
+import SetTheory.Game.Short
 
 #align_import set_theory.game.state from "leanprover-community/mathlib"@"728ef9dbb281241906f25cbeb30f90d83e0bb451"
 
Diff
@@ -29,9 +29,9 @@ See `set_theory/game/domineering` for an example using this construction.
 
 universe u
 
-namespace PGame
+namespace SetTheory.PGame
 
-#print PGame.State /-
+#print SetTheory.PGame.State /-
 /-- `pgame_state S` describes how to interpret `s : S` as a state of a combinatorial game.
 Use `pgame.of_state s` or `game.of_state s` to construct the game.
 
@@ -39,226 +39,252 @@ Use `pgame.of_state s` or `game.of_state s` to construct the game.
 by a move by Left or Right. `pgame_state.turn_bound : S → ℕ` gives an upper bound on the number of
 possible turns remaining from this state.
 -/
-class State (S : Type u) where
+class SetTheory.PGame.State (S : Type u) where
   turnBound : S → ℕ
   l : S → Finset S
   r : S → Finset S
   left_bound : ∀ {s t : S} (m : t ∈ L s), turn_bound t < turn_bound s
   right_bound : ∀ {s t : S} (m : t ∈ R s), turn_bound t < turn_bound s
-#align pgame.state PGame.State
+#align pgame.state SetTheory.PGame.State
 -/
 
 open StateM
 
-variable {S : Type u} [State S]
+variable {S : Type u} [SetTheory.PGame.State S]
 
-#print PGame.turnBound_ne_zero_of_left_move /-
-theorem turnBound_ne_zero_of_left_move {s t : S} (m : t ∈ l s) : turnBound s ≠ 0 :=
+#print SetTheory.PGame.turnBound_ne_zero_of_left_move /-
+theorem SetTheory.PGame.turnBound_ne_zero_of_left_move {s t : S}
+    (m : t ∈ SetTheory.PGame.State.l s) : SetTheory.PGame.State.turnBound s ≠ 0 :=
   by
   intro h
   have t := state.left_bound m
   rw [h] at t 
   exact Nat.not_succ_le_zero _ t
-#align pgame.turn_bound_ne_zero_of_left_move PGame.turnBound_ne_zero_of_left_move
+#align pgame.turn_bound_ne_zero_of_left_move SetTheory.PGame.turnBound_ne_zero_of_left_move
 -/
 
-#print PGame.turnBound_ne_zero_of_right_move /-
-theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s ≠ 0 :=
+#print SetTheory.PGame.turnBound_ne_zero_of_right_move /-
+theorem SetTheory.PGame.turnBound_ne_zero_of_right_move {s t : S}
+    (m : t ∈ SetTheory.PGame.State.r s) : SetTheory.PGame.State.turnBound s ≠ 0 :=
   by
   intro h
   have t := state.right_bound m
   rw [h] at t 
   exact Nat.not_succ_le_zero _ t
-#align pgame.turn_bound_ne_zero_of_right_move PGame.turnBound_ne_zero_of_right_move
+#align pgame.turn_bound_ne_zero_of_right_move SetTheory.PGame.turnBound_ne_zero_of_right_move
 -/
 
-#print PGame.turnBound_of_left /-
-theorem turnBound_of_left {s t : S} (m : t ∈ l s) (n : ℕ) (h : turnBound s ≤ n + 1) :
-    turnBound t ≤ n :=
-  Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (left_bound m) h)
-#align pgame.turn_bound_of_left PGame.turnBound_of_left
+#print SetTheory.PGame.turnBound_of_left /-
+theorem SetTheory.PGame.turnBound_of_left {s t : S} (m : t ∈ SetTheory.PGame.State.l s) (n : ℕ)
+    (h : SetTheory.PGame.State.turnBound s ≤ n + 1) : SetTheory.PGame.State.turnBound t ≤ n :=
+  Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (SetTheory.PGame.State.left_bound m) h)
+#align pgame.turn_bound_of_left SetTheory.PGame.turnBound_of_left
 -/
 
-#print PGame.turnBound_of_right /-
-theorem turnBound_of_right {s t : S} (m : t ∈ r s) (n : ℕ) (h : turnBound s ≤ n + 1) :
-    turnBound t ≤ n :=
-  Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (right_bound m) h)
-#align pgame.turn_bound_of_right PGame.turnBound_of_right
+#print SetTheory.PGame.turnBound_of_right /-
+theorem SetTheory.PGame.turnBound_of_right {s t : S} (m : t ∈ SetTheory.PGame.State.r s) (n : ℕ)
+    (h : SetTheory.PGame.State.turnBound s ≤ n + 1) : SetTheory.PGame.State.turnBound t ≤ n :=
+  Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (SetTheory.PGame.State.right_bound m) h)
+#align pgame.turn_bound_of_right SetTheory.PGame.turnBound_of_right
 -/
 
-#print PGame.ofStateAux /-
+#print SetTheory.PGame.ofStateAux /-
 /-- Construct a `pgame` from a state and a (not necessarily optimal) bound on the number of
 turns remaining.
 -/
-def ofStateAux : ∀ (n : ℕ) (s : S) (h : turnBound s ≤ n), PGame
+def SetTheory.PGame.ofStateAux :
+    ∀ (n : ℕ) (s : S) (h : SetTheory.PGame.State.turnBound s ≤ n), SetTheory.PGame
   | 0, s, h =>
-    PGame.mk { t // t ∈ l s } { t // t ∈ r s }
+    SetTheory.PGame.mk { t // t ∈ SetTheory.PGame.State.l s } { t // t ∈ SetTheory.PGame.State.r s }
       (fun t => by exfalso; exact turn_bound_ne_zero_of_left_move t.2 (nonpos_iff_eq_zero.mp h))
       fun t => by exfalso; exact turn_bound_ne_zero_of_right_move t.2 (nonpos_iff_eq_zero.mp h)
   | n + 1, s, h =>
-    PGame.mk { t // t ∈ l s } { t // t ∈ r s }
-      (fun t => of_state_aux n t (turnBound_of_left t.2 n h)) fun t =>
-      of_state_aux n t (turnBound_of_right t.2 n h)
-#align pgame.of_state_aux PGame.ofStateAux
+    SetTheory.PGame.mk { t // t ∈ SetTheory.PGame.State.l s } { t // t ∈ SetTheory.PGame.State.r s }
+      (fun t => of_state_aux n t (SetTheory.PGame.turnBound_of_left t.2 n h)) fun t =>
+      of_state_aux n t (SetTheory.PGame.turnBound_of_right t.2 n h)
+#align pgame.of_state_aux SetTheory.PGame.ofStateAux
 -/
 
-#print PGame.ofStateAuxRelabelling /-
+#print SetTheory.PGame.ofStateAuxRelabelling /-
 /-- Two different (valid) turn bounds give equivalent games. -/
-def ofStateAuxRelabelling :
-    ∀ (s : S) (n m : ℕ) (hn : turnBound s ≤ n) (hm : turnBound s ≤ m),
-      Relabelling (ofStateAux n s hn) (ofStateAux m s hm)
+def SetTheory.PGame.ofStateAuxRelabelling :
+    ∀ (s : S) (n m : ℕ) (hn : SetTheory.PGame.State.turnBound s ≤ n)
+      (hm : SetTheory.PGame.State.turnBound s ≤ m),
+      SetTheory.PGame.Relabelling (SetTheory.PGame.ofStateAux n s hn)
+        (SetTheory.PGame.ofStateAux m s hm)
   | s, 0, 0, hn, hm => by
-    dsimp [PGame.ofStateAux]
+    dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i; dsimp at i ; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
     · intro j; dsimp at j ; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, 0, m + 1, hn, hm => by
-    dsimp [PGame.ofStateAux]
+    dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i; dsimp at i ; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
     · intro j; dsimp at j ; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hn)
   | s, n + 1, 0, hn, hm => by
-    dsimp [PGame.ofStateAux]
+    dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i; dsimp at i ; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hm)
     · intro j; dsimp at j ; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, n + 1, m + 1, hn, hm => by
-    dsimp [PGame.ofStateAux]
+    dsimp [SetTheory.PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i
       apply of_state_aux_relabelling
     · intro j
       apply of_state_aux_relabelling
-#align pgame.of_state_aux_relabelling PGame.ofStateAuxRelabelling
+#align pgame.of_state_aux_relabelling SetTheory.PGame.ofStateAuxRelabelling
 -/
 
-#print PGame.ofState /-
+#print SetTheory.PGame.ofState /-
 /-- Construct a combinatorial `pgame` from a state. -/
-def ofState (s : S) : PGame :=
-  ofStateAux (turnBound s) s (refl _)
-#align pgame.of_state PGame.ofState
+def SetTheory.PGame.ofState (s : S) : SetTheory.PGame :=
+  SetTheory.PGame.ofStateAux (SetTheory.PGame.State.turnBound s) s (refl _)
+#align pgame.of_state SetTheory.PGame.ofState
 -/
 
-#print PGame.leftMovesOfStateAux /-
+#print SetTheory.PGame.leftMovesOfStateAux /-
 /-- The equivalence between `left_moves` for a `pgame` constructed using `of_state_aux _ s _`, and
 `L s`. -/
-def leftMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
-    LeftMoves (ofStateAux n s h) ≃ { t // t ∈ l s } := by induction n <;> rfl
-#align pgame.left_moves_of_state_aux PGame.leftMovesOfStateAux
+def SetTheory.PGame.leftMovesOfStateAux (n : ℕ) {s : S}
+    (h : SetTheory.PGame.State.turnBound s ≤ n) :
+    SetTheory.PGame.LeftMoves (SetTheory.PGame.ofStateAux n s h) ≃
+      { t // t ∈ SetTheory.PGame.State.l s } :=
+  by induction n <;> rfl
+#align pgame.left_moves_of_state_aux SetTheory.PGame.leftMovesOfStateAux
 -/
 
-#print PGame.leftMovesOfState /-
+#print SetTheory.PGame.leftMovesOfState /-
 /-- The equivalence between `left_moves` for a `pgame` constructed using `of_state s`, and `L s`. -/
-def leftMovesOfState (s : S) : LeftMoves (ofState s) ≃ { t // t ∈ l s } :=
-  leftMovesOfStateAux _ _
-#align pgame.left_moves_of_state PGame.leftMovesOfState
+def SetTheory.PGame.leftMovesOfState (s : S) :
+    SetTheory.PGame.LeftMoves (SetTheory.PGame.ofState s) ≃
+      { t // t ∈ SetTheory.PGame.State.l s } :=
+  SetTheory.PGame.leftMovesOfStateAux _ _
+#align pgame.left_moves_of_state SetTheory.PGame.leftMovesOfState
 -/
 
-#print PGame.rightMovesOfStateAux /-
+#print SetTheory.PGame.rightMovesOfStateAux /-
 /-- The equivalence between `right_moves` for a `pgame` constructed using `of_state_aux _ s _`, and
 `R s`. -/
-def rightMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
-    RightMoves (ofStateAux n s h) ≃ { t // t ∈ r s } := by induction n <;> rfl
-#align pgame.right_moves_of_state_aux PGame.rightMovesOfStateAux
+def SetTheory.PGame.rightMovesOfStateAux (n : ℕ) {s : S}
+    (h : SetTheory.PGame.State.turnBound s ≤ n) :
+    SetTheory.PGame.RightMoves (SetTheory.PGame.ofStateAux n s h) ≃
+      { t // t ∈ SetTheory.PGame.State.r s } :=
+  by induction n <;> rfl
+#align pgame.right_moves_of_state_aux SetTheory.PGame.rightMovesOfStateAux
 -/
 
-#print PGame.rightMovesOfState /-
+#print SetTheory.PGame.rightMovesOfState /-
 /-- The equivalence between `right_moves` for a `pgame` constructed using `of_state s`, and
 `R s`. -/
-def rightMovesOfState (s : S) : RightMoves (ofState s) ≃ { t // t ∈ r s } :=
-  rightMovesOfStateAux _ _
-#align pgame.right_moves_of_state PGame.rightMovesOfState
+def SetTheory.PGame.rightMovesOfState (s : S) :
+    SetTheory.PGame.RightMoves (SetTheory.PGame.ofState s) ≃
+      { t // t ∈ SetTheory.PGame.State.r s } :=
+  SetTheory.PGame.rightMovesOfStateAux _ _
+#align pgame.right_moves_of_state SetTheory.PGame.rightMovesOfState
 -/
 
-#print PGame.relabellingMoveLeftAux /-
+#print SetTheory.PGame.relabellingMoveLeftAux /-
 /-- The relabelling showing `move_left` applied to a game constructed using `of_state_aux`
 has itself been constructed using `of_state_aux`.
 -/
-def relabellingMoveLeftAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
-    (t : LeftMoves (ofStateAux n s h)) :
-    Relabelling (moveLeft (ofStateAux n s h) t)
-      (ofStateAux (n - 1) ((leftMovesOfStateAux n h) t : S)
-        (turnBound_of_left ((leftMovesOfStateAux n h) t).2 (n - 1) (Nat.le_trans h le_tsub_add))) :=
+def SetTheory.PGame.relabellingMoveLeftAux (n : ℕ) {s : S}
+    (h : SetTheory.PGame.State.turnBound s ≤ n)
+    (t : SetTheory.PGame.LeftMoves (SetTheory.PGame.ofStateAux n s h)) :
+    SetTheory.PGame.Relabelling (SetTheory.PGame.moveLeft (SetTheory.PGame.ofStateAux n s h) t)
+      (SetTheory.PGame.ofStateAux (n - 1) ((SetTheory.PGame.leftMovesOfStateAux n h) t : S)
+        (SetTheory.PGame.turnBound_of_left ((SetTheory.PGame.leftMovesOfStateAux n h) t).2 (n - 1)
+          (Nat.le_trans h le_tsub_add))) :=
   by
   induction n
   · have t' := (left_moves_of_state_aux 0 h) t
     exfalso; exact turn_bound_ne_zero_of_left_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
-#align pgame.relabelling_move_left_aux PGame.relabellingMoveLeftAux
+#align pgame.relabelling_move_left_aux SetTheory.PGame.relabellingMoveLeftAux
 -/
 
-#print PGame.relabellingMoveLeft /-
+#print SetTheory.PGame.relabellingMoveLeft /-
 /-- The relabelling showing `move_left` applied to a game constructed using `of`
 has itself been constructed using `of`.
 -/
-def relabellingMoveLeft (s : S) (t : LeftMoves (ofState s)) :
-    Relabelling (moveLeft (ofState s) t) (ofState ((leftMovesOfState s).toFun t : S)) :=
+def SetTheory.PGame.relabellingMoveLeft (s : S)
+    (t : SetTheory.PGame.LeftMoves (SetTheory.PGame.ofState s)) :
+    SetTheory.PGame.Relabelling (SetTheory.PGame.moveLeft (SetTheory.PGame.ofState s) t)
+      (SetTheory.PGame.ofState ((SetTheory.PGame.leftMovesOfState s).toFun t : S)) :=
   by
   trans
   apply relabelling_move_left_aux
   apply of_state_aux_relabelling
-#align pgame.relabelling_move_left PGame.relabellingMoveLeft
+#align pgame.relabelling_move_left SetTheory.PGame.relabellingMoveLeft
 -/
 
-#print PGame.relabellingMoveRightAux /-
+#print SetTheory.PGame.relabellingMoveRightAux /-
 /-- The relabelling showing `move_right` applied to a game constructed using `of_state_aux`
 has itself been constructed using `of_state_aux`.
 -/
-def relabellingMoveRightAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
-    (t : RightMoves (ofStateAux n s h)) :
-    Relabelling (moveRight (ofStateAux n s h) t)
-      (ofStateAux (n - 1) ((rightMovesOfStateAux n h) t : S)
-        (turnBound_of_right ((rightMovesOfStateAux n h) t).2 (n - 1)
+def SetTheory.PGame.relabellingMoveRightAux (n : ℕ) {s : S}
+    (h : SetTheory.PGame.State.turnBound s ≤ n)
+    (t : SetTheory.PGame.RightMoves (SetTheory.PGame.ofStateAux n s h)) :
+    SetTheory.PGame.Relabelling (SetTheory.PGame.moveRight (SetTheory.PGame.ofStateAux n s h) t)
+      (SetTheory.PGame.ofStateAux (n - 1) ((SetTheory.PGame.rightMovesOfStateAux n h) t : S)
+        (SetTheory.PGame.turnBound_of_right ((SetTheory.PGame.rightMovesOfStateAux n h) t).2 (n - 1)
           (Nat.le_trans h le_tsub_add))) :=
   by
   induction n
   · have t' := (right_moves_of_state_aux 0 h) t
     exfalso; exact turn_bound_ne_zero_of_right_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
-#align pgame.relabelling_move_right_aux PGame.relabellingMoveRightAux
+#align pgame.relabelling_move_right_aux SetTheory.PGame.relabellingMoveRightAux
 -/
 
-#print PGame.relabellingMoveRight /-
+#print SetTheory.PGame.relabellingMoveRight /-
 /-- The relabelling showing `move_right` applied to a game constructed using `of`
 has itself been constructed using `of`.
 -/
-def relabellingMoveRight (s : S) (t : RightMoves (ofState s)) :
-    Relabelling (moveRight (ofState s) t) (ofState ((rightMovesOfState s).toFun t : S)) :=
+def SetTheory.PGame.relabellingMoveRight (s : S)
+    (t : SetTheory.PGame.RightMoves (SetTheory.PGame.ofState s)) :
+    SetTheory.PGame.Relabelling (SetTheory.PGame.moveRight (SetTheory.PGame.ofState s) t)
+      (SetTheory.PGame.ofState ((SetTheory.PGame.rightMovesOfState s).toFun t : S)) :=
   by
   trans
   apply relabelling_move_right_aux
   apply of_state_aux_relabelling
-#align pgame.relabelling_move_right PGame.relabellingMoveRight
+#align pgame.relabelling_move_right SetTheory.PGame.relabellingMoveRight
 -/
 
-#print PGame.fintypeLeftMovesOfStateAux /-
-instance fintypeLeftMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
-    Fintype (LeftMoves (ofStateAux n s h)) :=
+#print SetTheory.PGame.fintypeLeftMovesOfStateAux /-
+instance SetTheory.PGame.fintypeLeftMovesOfStateAux (n : ℕ) (s : S)
+    (h : SetTheory.PGame.State.turnBound s ≤ n) :
+    Fintype (SetTheory.PGame.LeftMoves (SetTheory.PGame.ofStateAux n s h)) :=
   by
   apply Fintype.ofEquiv _ (left_moves_of_state_aux _ _).symm
   infer_instance
-#align pgame.fintype_left_moves_of_state_aux PGame.fintypeLeftMovesOfStateAux
+#align pgame.fintype_left_moves_of_state_aux SetTheory.PGame.fintypeLeftMovesOfStateAux
 -/
 
-#print PGame.fintypeRightMovesOfStateAux /-
-instance fintypeRightMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
-    Fintype (RightMoves (ofStateAux n s h)) :=
+#print SetTheory.PGame.fintypeRightMovesOfStateAux /-
+instance SetTheory.PGame.fintypeRightMovesOfStateAux (n : ℕ) (s : S)
+    (h : SetTheory.PGame.State.turnBound s ≤ n) :
+    Fintype (SetTheory.PGame.RightMoves (SetTheory.PGame.ofStateAux n s h)) :=
   by
   apply Fintype.ofEquiv _ (right_moves_of_state_aux _ _).symm
   infer_instance
-#align pgame.fintype_right_moves_of_state_aux PGame.fintypeRightMovesOfStateAux
+#align pgame.fintype_right_moves_of_state_aux SetTheory.PGame.fintypeRightMovesOfStateAux
 -/
 
-#print PGame.shortOfStateAux /-
-instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short (ofStateAux n s h)
+#print SetTheory.PGame.shortOfStateAux /-
+instance SetTheory.PGame.shortOfStateAux :
+    ∀ (n : ℕ) {s : S} (h : SetTheory.PGame.State.turnBound s ≤ n),
+      SetTheory.PGame.Short (SetTheory.PGame.ofStateAux n s h)
   | 0, s, h =>
-    Short.mk'
+    SetTheory.PGame.Short.mk'
       (fun i => by
         have i := (left_moves_of_state_aux _ _).toFun i
         exfalso
@@ -268,32 +294,34 @@ instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short
       exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp h)
   | n + 1, s, h =>
-    Short.mk'
+    SetTheory.PGame.Short.mk'
       (fun i =>
-        shortOfRelabelling (relabellingMoveLeftAux (n + 1) h i).symm (short_of_state_aux n _))
+        SetTheory.PGame.shortOfRelabelling (SetTheory.PGame.relabellingMoveLeftAux (n + 1) h i).symm
+          (short_of_state_aux n _))
       fun j =>
-      shortOfRelabelling (relabellingMoveRightAux (n + 1) h j).symm (short_of_state_aux n _)
-#align pgame.short_of_state_aux PGame.shortOfStateAux
+      SetTheory.PGame.shortOfRelabelling (SetTheory.PGame.relabellingMoveRightAux (n + 1) h j).symm
+        (short_of_state_aux n _)
+#align pgame.short_of_state_aux SetTheory.PGame.shortOfStateAux
 -/
 
-#print PGame.shortOfState /-
-instance shortOfState (s : S) : Short (ofState s) :=
+#print SetTheory.PGame.shortOfState /-
+instance SetTheory.PGame.shortOfState (s : S) : SetTheory.PGame.Short (SetTheory.PGame.ofState s) :=
   by
-  dsimp [PGame.ofState]
+  dsimp [SetTheory.PGame.ofState]
   infer_instance
-#align pgame.short_of_state PGame.shortOfState
+#align pgame.short_of_state SetTheory.PGame.shortOfState
 -/
 
-end PGame
+end SetTheory.PGame
 
-namespace Game
+namespace SetTheory.Game
 
-#print Game.ofState /-
+#print SetTheory.Game.ofState /-
 /-- Construct a combinatorial `game` from a state. -/
-def ofState {S : Type u} [PGame.State S] (s : S) : Game :=
-  ⟦PGame.ofState s⟧
-#align game.of_state Game.ofState
+def SetTheory.Game.ofState {S : Type u} [SetTheory.PGame.State S] (s : S) : SetTheory.Game :=
+  ⟦SetTheory.PGame.ofState s⟧
+#align game.of_state SetTheory.Game.ofState
 -/
 
-end Game
+end SetTheory.Game
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module set_theory.game.state
-! leanprover-community/mathlib commit 728ef9dbb281241906f25cbeb30f90d83e0bb451
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.SetTheory.Game.Short
 
+#align_import set_theory.game.state from "leanprover-community/mathlib"@"728ef9dbb281241906f25cbeb30f90d83e0bb451"
+
 /-!
 # Games described via "the state of the board".
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module set_theory.game.state
-! leanprover-community/mathlib commit b134b2f5cf6dd25d4bbfd3c498b6e36c11a17225
+! leanprover-community/mathlib commit 728ef9dbb281241906f25cbeb30f90d83e0bb451
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.SetTheory.Game.Short
 /-!
 # Games described via "the state of the board".
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We provide a simple mechanism for constructing combinatorial (pre-)games, by describing
 "the state of the board", and providing an upper bound on the number of turns remaining.
 
Diff
@@ -31,6 +31,7 @@ universe u
 
 namespace PGame
 
+#print PGame.State /-
 /-- `pgame_state S` describes how to interpret `s : S` as a state of a combinatorial game.
 Use `pgame.of_state s` or `game.of_state s` to construct the game.
 
@@ -45,11 +46,13 @@ class State (S : Type u) where
   left_bound : ∀ {s t : S} (m : t ∈ L s), turn_bound t < turn_bound s
   right_bound : ∀ {s t : S} (m : t ∈ R s), turn_bound t < turn_bound s
 #align pgame.state PGame.State
+-/
 
 open StateM
 
 variable {S : Type u} [State S]
 
+#print PGame.turnBound_ne_zero_of_left_move /-
 theorem turnBound_ne_zero_of_left_move {s t : S} (m : t ∈ l s) : turnBound s ≠ 0 :=
   by
   intro h
@@ -57,7 +60,9 @@ theorem turnBound_ne_zero_of_left_move {s t : S} (m : t ∈ l s) : turnBound s 
   rw [h] at t 
   exact Nat.not_succ_le_zero _ t
 #align pgame.turn_bound_ne_zero_of_left_move PGame.turnBound_ne_zero_of_left_move
+-/
 
+#print PGame.turnBound_ne_zero_of_right_move /-
 theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s ≠ 0 :=
   by
   intro h
@@ -65,17 +70,23 @@ theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s
   rw [h] at t 
   exact Nat.not_succ_le_zero _ t
 #align pgame.turn_bound_ne_zero_of_right_move PGame.turnBound_ne_zero_of_right_move
+-/
 
+#print PGame.turnBound_of_left /-
 theorem turnBound_of_left {s t : S} (m : t ∈ l s) (n : ℕ) (h : turnBound s ≤ n + 1) :
     turnBound t ≤ n :=
   Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (left_bound m) h)
 #align pgame.turn_bound_of_left PGame.turnBound_of_left
+-/
 
+#print PGame.turnBound_of_right /-
 theorem turnBound_of_right {s t : S} (m : t ∈ r s) (n : ℕ) (h : turnBound s ≤ n + 1) :
     turnBound t ≤ n :=
   Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (right_bound m) h)
 #align pgame.turn_bound_of_right PGame.turnBound_of_right
+-/
 
+#print PGame.ofStateAux /-
 /-- Construct a `pgame` from a state and a (not necessarily optimal) bound on the number of
 turns remaining.
 -/
@@ -89,7 +100,9 @@ def ofStateAux : ∀ (n : ℕ) (s : S) (h : turnBound s ≤ n), PGame
       (fun t => of_state_aux n t (turnBound_of_left t.2 n h)) fun t =>
       of_state_aux n t (turnBound_of_right t.2 n h)
 #align pgame.of_state_aux PGame.ofStateAux
+-/
 
+#print PGame.ofStateAuxRelabelling /-
 /-- Two different (valid) turn bounds give equivalent games. -/
 def ofStateAuxRelabelling :
     ∀ (s : S) (n m : ℕ) (hn : turnBound s ≤ n) (hm : turnBound s ≤ m),
@@ -123,35 +136,47 @@ def ofStateAuxRelabelling :
     · intro j
       apply of_state_aux_relabelling
 #align pgame.of_state_aux_relabelling PGame.ofStateAuxRelabelling
+-/
 
+#print PGame.ofState /-
 /-- Construct a combinatorial `pgame` from a state. -/
 def ofState (s : S) : PGame :=
   ofStateAux (turnBound s) s (refl _)
 #align pgame.of_state PGame.ofState
+-/
 
+#print PGame.leftMovesOfStateAux /-
 /-- The equivalence between `left_moves` for a `pgame` constructed using `of_state_aux _ s _`, and
 `L s`. -/
 def leftMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
     LeftMoves (ofStateAux n s h) ≃ { t // t ∈ l s } := by induction n <;> rfl
 #align pgame.left_moves_of_state_aux PGame.leftMovesOfStateAux
+-/
 
+#print PGame.leftMovesOfState /-
 /-- The equivalence between `left_moves` for a `pgame` constructed using `of_state s`, and `L s`. -/
 def leftMovesOfState (s : S) : LeftMoves (ofState s) ≃ { t // t ∈ l s } :=
   leftMovesOfStateAux _ _
 #align pgame.left_moves_of_state PGame.leftMovesOfState
+-/
 
+#print PGame.rightMovesOfStateAux /-
 /-- The equivalence between `right_moves` for a `pgame` constructed using `of_state_aux _ s _`, and
 `R s`. -/
 def rightMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
     RightMoves (ofStateAux n s h) ≃ { t // t ∈ r s } := by induction n <;> rfl
 #align pgame.right_moves_of_state_aux PGame.rightMovesOfStateAux
+-/
 
+#print PGame.rightMovesOfState /-
 /-- The equivalence between `right_moves` for a `pgame` constructed using `of_state s`, and
 `R s`. -/
 def rightMovesOfState (s : S) : RightMoves (ofState s) ≃ { t // t ∈ r s } :=
   rightMovesOfStateAux _ _
 #align pgame.right_moves_of_state PGame.rightMovesOfState
+-/
 
+#print PGame.relabellingMoveLeftAux /-
 /-- The relabelling showing `move_left` applied to a game constructed using `of_state_aux`
 has itself been constructed using `of_state_aux`.
 -/
@@ -166,7 +191,9 @@ def relabellingMoveLeftAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
     exfalso; exact turn_bound_ne_zero_of_left_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
 #align pgame.relabelling_move_left_aux PGame.relabellingMoveLeftAux
+-/
 
+#print PGame.relabellingMoveLeft /-
 /-- The relabelling showing `move_left` applied to a game constructed using `of`
 has itself been constructed using `of`.
 -/
@@ -177,7 +204,9 @@ def relabellingMoveLeft (s : S) (t : LeftMoves (ofState s)) :
   apply relabelling_move_left_aux
   apply of_state_aux_relabelling
 #align pgame.relabelling_move_left PGame.relabellingMoveLeft
+-/
 
+#print PGame.relabellingMoveRightAux /-
 /-- The relabelling showing `move_right` applied to a game constructed using `of_state_aux`
 has itself been constructed using `of_state_aux`.
 -/
@@ -193,7 +222,9 @@ def relabellingMoveRightAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
     exfalso; exact turn_bound_ne_zero_of_right_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
 #align pgame.relabelling_move_right_aux PGame.relabellingMoveRightAux
+-/
 
+#print PGame.relabellingMoveRight /-
 /-- The relabelling showing `move_right` applied to a game constructed using `of`
 has itself been constructed using `of`.
 -/
@@ -204,21 +235,27 @@ def relabellingMoveRight (s : S) (t : RightMoves (ofState s)) :
   apply relabelling_move_right_aux
   apply of_state_aux_relabelling
 #align pgame.relabelling_move_right PGame.relabellingMoveRight
+-/
 
+#print PGame.fintypeLeftMovesOfStateAux /-
 instance fintypeLeftMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
     Fintype (LeftMoves (ofStateAux n s h)) :=
   by
   apply Fintype.ofEquiv _ (left_moves_of_state_aux _ _).symm
   infer_instance
 #align pgame.fintype_left_moves_of_state_aux PGame.fintypeLeftMovesOfStateAux
+-/
 
+#print PGame.fintypeRightMovesOfStateAux /-
 instance fintypeRightMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
     Fintype (RightMoves (ofStateAux n s h)) :=
   by
   apply Fintype.ofEquiv _ (right_moves_of_state_aux _ _).symm
   infer_instance
 #align pgame.fintype_right_moves_of_state_aux PGame.fintypeRightMovesOfStateAux
+-/
 
+#print PGame.shortOfStateAux /-
 instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short (ofStateAux n s h)
   | 0, s, h =>
     Short.mk'
@@ -237,21 +274,26 @@ instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short
       fun j =>
       shortOfRelabelling (relabellingMoveRightAux (n + 1) h j).symm (short_of_state_aux n _)
 #align pgame.short_of_state_aux PGame.shortOfStateAux
+-/
 
+#print PGame.shortOfState /-
 instance shortOfState (s : S) : Short (ofState s) :=
   by
   dsimp [PGame.ofState]
   infer_instance
 #align pgame.short_of_state PGame.shortOfState
+-/
 
 end PGame
 
 namespace Game
 
+#print Game.ofState /-
 /-- Construct a combinatorial `game` from a state. -/
 def ofState {S : Type u} [PGame.State S] (s : S) : Game :=
   ⟦PGame.ofState s⟧
 #align game.of_state Game.ofState
+-/
 
 end Game
 
Diff
@@ -54,7 +54,7 @@ theorem turnBound_ne_zero_of_left_move {s t : S} (m : t ∈ l s) : turnBound s 
   by
   intro h
   have t := state.left_bound m
-  rw [h] at t
+  rw [h] at t 
   exact Nat.not_succ_le_zero _ t
 #align pgame.turn_bound_ne_zero_of_left_move PGame.turnBound_ne_zero_of_left_move
 
@@ -62,7 +62,7 @@ theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s
   by
   intro h
   have t := state.right_bound m
-  rw [h] at t
+  rw [h] at t 
   exact Nat.not_succ_le_zero _ t
 #align pgame.turn_bound_ne_zero_of_right_move PGame.turnBound_ne_zero_of_right_move
 
@@ -97,23 +97,23 @@ def ofStateAuxRelabelling :
   | s, 0, 0, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i; exfalso
+    · intro i; dsimp at i ; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j; dsimp at j; exfalso
+    · intro j; dsimp at j ; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, 0, m + 1, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i; exfalso
+    · intro i; dsimp at i ; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j; dsimp at j; exfalso
+    · intro j; dsimp at j ; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hn)
   | s, n + 1, 0, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i; exfalso
+    · intro i; dsimp at i ; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hm)
-    · intro j; dsimp at j; exfalso
+    · intro j; dsimp at j ; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, n + 1, m + 1, hn, hm => by
     dsimp [PGame.ofStateAux]
Diff
@@ -97,35 +97,23 @@ def ofStateAuxRelabelling :
   | s, 0, 0, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i
-      dsimp at i
-      exfalso
+    · intro i; dsimp at i; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j
-      dsimp at j
-      exfalso
+    · intro j; dsimp at j; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, 0, m + 1, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i
-      dsimp at i
-      exfalso
+    · intro i; dsimp at i; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j
-      dsimp at j
-      exfalso
+    · intro j; dsimp at j; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hn)
   | s, n + 1, 0, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i
-      dsimp at i
-      exfalso
+    · intro i; dsimp at i; exfalso
       exact turn_bound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hm)
-    · intro j
-      dsimp at j
-      exfalso
+    · intro j; dsimp at j; exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, n + 1, m + 1, hn, hm => by
     dsimp [PGame.ofStateAux]
@@ -175,8 +163,7 @@ def relabellingMoveLeftAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
   by
   induction n
   · have t' := (left_moves_of_state_aux 0 h) t
-    exfalso
-    exact turn_bound_ne_zero_of_left_move t'.2 (nonpos_iff_eq_zero.mp h)
+    exfalso; exact turn_bound_ne_zero_of_left_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
 #align pgame.relabelling_move_left_aux PGame.relabellingMoveLeftAux
 
@@ -203,8 +190,7 @@ def relabellingMoveRightAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
   by
   induction n
   · have t' := (right_moves_of_state_aux 0 h) t
-    exfalso
-    exact turn_bound_ne_zero_of_right_move t'.2 (nonpos_iff_eq_zero.mp h)
+    exfalso; exact turn_bound_ne_zero_of_right_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
 #align pgame.relabelling_move_right_aux PGame.relabellingMoveRightAux
 
Diff
@@ -29,7 +29,7 @@ See `set_theory/game/domineering` for an example using this construction.
 
 universe u
 
-namespace Pgame
+namespace PGame
 
 /-- `pgame_state S` describes how to interpret `s : S` as a state of a combinatorial game.
 Use `pgame.of_state s` or `game.of_state s` to construct the game.
@@ -44,7 +44,7 @@ class State (S : Type u) where
   r : S → Finset S
   left_bound : ∀ {s t : S} (m : t ∈ L s), turn_bound t < turn_bound s
   right_bound : ∀ {s t : S} (m : t ∈ R s), turn_bound t < turn_bound s
-#align pgame.state Pgame.State
+#align pgame.state PGame.State
 
 open StateM
 
@@ -56,7 +56,7 @@ theorem turnBound_ne_zero_of_left_move {s t : S} (m : t ∈ l s) : turnBound s 
   have t := state.left_bound m
   rw [h] at t
   exact Nat.not_succ_le_zero _ t
-#align pgame.turn_bound_ne_zero_of_left_move Pgame.turnBound_ne_zero_of_left_move
+#align pgame.turn_bound_ne_zero_of_left_move PGame.turnBound_ne_zero_of_left_move
 
 theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s ≠ 0 :=
   by
@@ -64,38 +64,38 @@ theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s
   have t := state.right_bound m
   rw [h] at t
   exact Nat.not_succ_le_zero _ t
-#align pgame.turn_bound_ne_zero_of_right_move Pgame.turnBound_ne_zero_of_right_move
+#align pgame.turn_bound_ne_zero_of_right_move PGame.turnBound_ne_zero_of_right_move
 
 theorem turnBound_of_left {s t : S} (m : t ∈ l s) (n : ℕ) (h : turnBound s ≤ n + 1) :
     turnBound t ≤ n :=
   Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (left_bound m) h)
-#align pgame.turn_bound_of_left Pgame.turnBound_of_left
+#align pgame.turn_bound_of_left PGame.turnBound_of_left
 
 theorem turnBound_of_right {s t : S} (m : t ∈ r s) (n : ℕ) (h : turnBound s ≤ n + 1) :
     turnBound t ≤ n :=
   Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (right_bound m) h)
-#align pgame.turn_bound_of_right Pgame.turnBound_of_right
+#align pgame.turn_bound_of_right PGame.turnBound_of_right
 
 /-- Construct a `pgame` from a state and a (not necessarily optimal) bound on the number of
 turns remaining.
 -/
-def ofStateAux : ∀ (n : ℕ) (s : S) (h : turnBound s ≤ n), Pgame
+def ofStateAux : ∀ (n : ℕ) (s : S) (h : turnBound s ≤ n), PGame
   | 0, s, h =>
-    Pgame.mk { t // t ∈ l s } { t // t ∈ r s }
+    PGame.mk { t // t ∈ l s } { t // t ∈ r s }
       (fun t => by exfalso; exact turn_bound_ne_zero_of_left_move t.2 (nonpos_iff_eq_zero.mp h))
       fun t => by exfalso; exact turn_bound_ne_zero_of_right_move t.2 (nonpos_iff_eq_zero.mp h)
   | n + 1, s, h =>
-    Pgame.mk { t // t ∈ l s } { t // t ∈ r s }
+    PGame.mk { t // t ∈ l s } { t // t ∈ r s }
       (fun t => of_state_aux n t (turnBound_of_left t.2 n h)) fun t =>
       of_state_aux n t (turnBound_of_right t.2 n h)
-#align pgame.of_state_aux Pgame.ofStateAux
+#align pgame.of_state_aux PGame.ofStateAux
 
 /-- Two different (valid) turn bounds give equivalent games. -/
 def ofStateAuxRelabelling :
     ∀ (s : S) (n m : ℕ) (hn : turnBound s ≤ n) (hm : turnBound s ≤ m),
       Relabelling (ofStateAux n s hn) (ofStateAux m s hm)
   | s, 0, 0, hn, hm => by
-    dsimp [Pgame.ofStateAux]
+    dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i
       dsimp at i
@@ -106,7 +106,7 @@ def ofStateAuxRelabelling :
       exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, 0, m + 1, hn, hm => by
-    dsimp [Pgame.ofStateAux]
+    dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i
       dsimp at i
@@ -117,7 +117,7 @@ def ofStateAuxRelabelling :
       exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hn)
   | s, n + 1, 0, hn, hm => by
-    dsimp [Pgame.ofStateAux]
+    dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i
       dsimp at i
@@ -128,41 +128,41 @@ def ofStateAuxRelabelling :
       exfalso
       exact turn_bound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, n + 1, m + 1, hn, hm => by
-    dsimp [Pgame.ofStateAux]
+    dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
     · intro i
       apply of_state_aux_relabelling
     · intro j
       apply of_state_aux_relabelling
-#align pgame.of_state_aux_relabelling Pgame.ofStateAuxRelabelling
+#align pgame.of_state_aux_relabelling PGame.ofStateAuxRelabelling
 
 /-- Construct a combinatorial `pgame` from a state. -/
-def ofState (s : S) : Pgame :=
+def ofState (s : S) : PGame :=
   ofStateAux (turnBound s) s (refl _)
-#align pgame.of_state Pgame.ofState
+#align pgame.of_state PGame.ofState
 
 /-- The equivalence between `left_moves` for a `pgame` constructed using `of_state_aux _ s _`, and
 `L s`. -/
 def leftMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
     LeftMoves (ofStateAux n s h) ≃ { t // t ∈ l s } := by induction n <;> rfl
-#align pgame.left_moves_of_state_aux Pgame.leftMovesOfStateAux
+#align pgame.left_moves_of_state_aux PGame.leftMovesOfStateAux
 
 /-- The equivalence between `left_moves` for a `pgame` constructed using `of_state s`, and `L s`. -/
 def leftMovesOfState (s : S) : LeftMoves (ofState s) ≃ { t // t ∈ l s } :=
   leftMovesOfStateAux _ _
-#align pgame.left_moves_of_state Pgame.leftMovesOfState
+#align pgame.left_moves_of_state PGame.leftMovesOfState
 
 /-- The equivalence between `right_moves` for a `pgame` constructed using `of_state_aux _ s _`, and
 `R s`. -/
 def rightMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
     RightMoves (ofStateAux n s h) ≃ { t // t ∈ r s } := by induction n <;> rfl
-#align pgame.right_moves_of_state_aux Pgame.rightMovesOfStateAux
+#align pgame.right_moves_of_state_aux PGame.rightMovesOfStateAux
 
 /-- The equivalence between `right_moves` for a `pgame` constructed using `of_state s`, and
 `R s`. -/
 def rightMovesOfState (s : S) : RightMoves (ofState s) ≃ { t // t ∈ r s } :=
   rightMovesOfStateAux _ _
-#align pgame.right_moves_of_state Pgame.rightMovesOfState
+#align pgame.right_moves_of_state PGame.rightMovesOfState
 
 /-- The relabelling showing `move_left` applied to a game constructed using `of_state_aux`
 has itself been constructed using `of_state_aux`.
@@ -178,7 +178,7 @@ def relabellingMoveLeftAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
     exfalso
     exact turn_bound_ne_zero_of_left_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
-#align pgame.relabelling_move_left_aux Pgame.relabellingMoveLeftAux
+#align pgame.relabelling_move_left_aux PGame.relabellingMoveLeftAux
 
 /-- The relabelling showing `move_left` applied to a game constructed using `of`
 has itself been constructed using `of`.
@@ -189,7 +189,7 @@ def relabellingMoveLeft (s : S) (t : LeftMoves (ofState s)) :
   trans
   apply relabelling_move_left_aux
   apply of_state_aux_relabelling
-#align pgame.relabelling_move_left Pgame.relabellingMoveLeft
+#align pgame.relabelling_move_left PGame.relabellingMoveLeft
 
 /-- The relabelling showing `move_right` applied to a game constructed using `of_state_aux`
 has itself been constructed using `of_state_aux`.
@@ -206,7 +206,7 @@ def relabellingMoveRightAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
     exfalso
     exact turn_bound_ne_zero_of_right_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
-#align pgame.relabelling_move_right_aux Pgame.relabellingMoveRightAux
+#align pgame.relabelling_move_right_aux PGame.relabellingMoveRightAux
 
 /-- The relabelling showing `move_right` applied to a game constructed using `of`
 has itself been constructed using `of`.
@@ -217,21 +217,21 @@ def relabellingMoveRight (s : S) (t : RightMoves (ofState s)) :
   trans
   apply relabelling_move_right_aux
   apply of_state_aux_relabelling
-#align pgame.relabelling_move_right Pgame.relabellingMoveRight
+#align pgame.relabelling_move_right PGame.relabellingMoveRight
 
 instance fintypeLeftMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
     Fintype (LeftMoves (ofStateAux n s h)) :=
   by
   apply Fintype.ofEquiv _ (left_moves_of_state_aux _ _).symm
   infer_instance
-#align pgame.fintype_left_moves_of_state_aux Pgame.fintypeLeftMovesOfStateAux
+#align pgame.fintype_left_moves_of_state_aux PGame.fintypeLeftMovesOfStateAux
 
 instance fintypeRightMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
     Fintype (RightMoves (ofStateAux n s h)) :=
   by
   apply Fintype.ofEquiv _ (right_moves_of_state_aux _ _).symm
   infer_instance
-#align pgame.fintype_right_moves_of_state_aux Pgame.fintypeRightMovesOfStateAux
+#align pgame.fintype_right_moves_of_state_aux PGame.fintypeRightMovesOfStateAux
 
 instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short (ofStateAux n s h)
   | 0, s, h =>
@@ -250,21 +250,21 @@ instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short
         shortOfRelabelling (relabellingMoveLeftAux (n + 1) h i).symm (short_of_state_aux n _))
       fun j =>
       shortOfRelabelling (relabellingMoveRightAux (n + 1) h j).symm (short_of_state_aux n _)
-#align pgame.short_of_state_aux Pgame.shortOfStateAux
+#align pgame.short_of_state_aux PGame.shortOfStateAux
 
 instance shortOfState (s : S) : Short (ofState s) :=
   by
-  dsimp [Pgame.ofState]
+  dsimp [PGame.ofState]
   infer_instance
-#align pgame.short_of_state Pgame.shortOfState
+#align pgame.short_of_state PGame.shortOfState
 
-end Pgame
+end PGame
 
 namespace Game
 
 /-- Construct a combinatorial `game` from a state. -/
-def ofState {S : Type u} [Pgame.State S] (s : S) : Game :=
-  ⟦Pgame.ofState s⟧
+def ofState {S : Type u} [PGame.State S] (s : S) : Game :=
+  ⟦PGame.ofState s⟧
 #align game.of_state Game.ofState
 
 end Game

Changes in mathlib4

mathlib3
mathlib4
chore: move Game to SetTheory.Game (#6365)

move Game and PGame into namespace SetTheory as _root_.Game might collide with other definitions (e.g. in projects depending on mathlib)

Diff
@@ -25,14 +25,15 @@ See `SetTheory/Game/Domineering` for an example using this construction.
 
 universe u
 
+namespace SetTheory
 namespace PGame
 
-/-- `PGame.State S` describes how to interpret `s : S` as a state of a combinatorial game.
-Use `PGame.ofState s` or `Game.ofState s` to construct the game.
+/-- `SetTheory.PGame.State S` describes how to interpret `s : S` as a state of a combinatorial game.
+Use `SetTheory.PGame.ofState s` or `SetTheory.Game.ofState s` to construct the game.
 
-`PGame.State.l : S → Finset S` and `PGame.State.r : S → Finset S` describe the states reachable
-by a move by Left or Right. `PGame.State.turnBound : S → ℕ` gives an upper bound on the number of
-possible turns remaining from this state.
+`SetTheory.PGame.State.l : S → Finset S` and `SetTheory.PGame.State.r : S → Finset S` describe
+the states reachable by a move by Left or Right. `SetTheory.PGame.State.turnBound : S → ℕ`
+gives an upper bound on the number of possible turns remaining from this state.
 -/
 class State (S : Type u) where
   turnBound : S → ℕ
@@ -40,7 +41,7 @@ class State (S : Type u) where
   r : S → Finset S
   left_bound : ∀ {s t : S}, t ∈ l s → turnBound t < turnBound s
   right_bound : ∀ {s t : S}, t ∈ r s → turnBound t < turnBound s
-#align pgame.state PGame.State
+#align pgame.state SetTheory.PGame.State
 
 open State
 
@@ -51,24 +52,24 @@ theorem turnBound_ne_zero_of_left_move {s t : S} (m : t ∈ l s) : turnBound s 
   have t := left_bound m
   rw [h] at t
   exact Nat.not_succ_le_zero _ t
-#align pgame.turn_bound_ne_zero_of_left_move PGame.turnBound_ne_zero_of_left_move
+#align pgame.turn_bound_ne_zero_of_left_move SetTheory.PGame.turnBound_ne_zero_of_left_move
 
 theorem turnBound_ne_zero_of_right_move {s t : S} (m : t ∈ r s) : turnBound s ≠ 0 := by
   intro h
   have t := right_bound m
   rw [h] at t
   exact Nat.not_succ_le_zero _ t
-#align pgame.turn_bound_ne_zero_of_right_move PGame.turnBound_ne_zero_of_right_move
+#align pgame.turn_bound_ne_zero_of_right_move SetTheory.PGame.turnBound_ne_zero_of_right_move
 
 theorem turnBound_of_left {s t : S} (m : t ∈ l s) (n : ℕ) (h : turnBound s ≤ n + 1) :
     turnBound t ≤ n :=
   Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (left_bound m) h)
-#align pgame.turn_bound_of_left PGame.turnBound_of_left
+#align pgame.turn_bound_of_left SetTheory.PGame.turnBound_of_left
 
 theorem turnBound_of_right {s t : S} (m : t ∈ r s) (n : ℕ) (h : turnBound s ≤ n + 1) :
     turnBound t ≤ n :=
   Nat.le_of_lt_succ (Nat.lt_of_lt_of_le (right_bound m) h)
-#align pgame.turn_bound_of_right PGame.turnBound_of_right
+#align pgame.turn_bound_of_right SetTheory.PGame.turnBound_of_right
 
 /-- Construct a `PGame` from a state and a (not necessarily optimal) bound on the number of
 turns remaining.
@@ -82,7 +83,7 @@ def ofStateAux : ∀ (n : ℕ) (s : S), turnBound s ≤ n → PGame
     PGame.mk { t // t ∈ l s } { t // t ∈ r s }
       (fun t => ofStateAux n t (turnBound_of_left t.2 n h)) fun t =>
       ofStateAux n t (turnBound_of_right t.2 n h)
-#align pgame.of_state_aux PGame.ofStateAux
+#align pgame.of_state_aux SetTheory.PGame.ofStateAux
 
 /-- Two different (valid) turn bounds give equivalent games. -/
 def ofStateAuxRelabelling :
@@ -116,35 +117,35 @@ def ofStateAuxRelabelling :
       apply ofStateAuxRelabelling
     · intro j
       apply ofStateAuxRelabelling
-#align pgame.of_state_aux_relabelling PGame.ofStateAuxRelabelling
+#align pgame.of_state_aux_relabelling SetTheory.PGame.ofStateAuxRelabelling
 
 /-- Construct a combinatorial `PGame` from a state. -/
 def ofState (s : S) : PGame :=
   ofStateAux (turnBound s) s (refl _)
-#align pgame.of_state PGame.ofState
+#align pgame.of_state SetTheory.PGame.ofState
 
 /-- The equivalence between `leftMoves` for a `PGame` constructed using `ofStateAux _ s _`, and
 `L s`. -/
 def leftMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
     LeftMoves (ofStateAux n s h) ≃ { t // t ∈ l s } := by induction n <;> rfl
-#align pgame.left_moves_of_state_aux PGame.leftMovesOfStateAux
+#align pgame.left_moves_of_state_aux SetTheory.PGame.leftMovesOfStateAux
 
 /-- The equivalence between `leftMoves` for a `PGame` constructed using `ofState s`, and `l s`. -/
 def leftMovesOfState (s : S) : LeftMoves (ofState s) ≃ { t // t ∈ l s } :=
   leftMovesOfStateAux _ _
-#align pgame.left_moves_of_state PGame.leftMovesOfState
+#align pgame.left_moves_of_state SetTheory.PGame.leftMovesOfState
 
 /-- The equivalence between `rightMoves` for a `PGame` constructed using `ofStateAux _ s _`, and
 `R s`. -/
 def rightMovesOfStateAux (n : ℕ) {s : S} (h : turnBound s ≤ n) :
     RightMoves (ofStateAux n s h) ≃ { t // t ∈ r s } := by induction n <;> rfl
-#align pgame.right_moves_of_state_aux PGame.rightMovesOfStateAux
+#align pgame.right_moves_of_state_aux SetTheory.PGame.rightMovesOfStateAux
 
 /-- The equivalence between `rightMoves` for a `PGame` constructed using `ofState s`, and
 `R s`. -/
 def rightMovesOfState (s : S) : RightMoves (ofState s) ≃ { t // t ∈ r s } :=
   rightMovesOfStateAux _ _
-#align pgame.right_moves_of_state PGame.rightMovesOfState
+#align pgame.right_moves_of_state SetTheory.PGame.rightMovesOfState
 
 /-- The relabelling showing `moveLeft` applied to a game constructed using `ofStateAux`
 has itself been constructed using `ofStateAux`.
@@ -159,7 +160,7 @@ def relabellingMoveLeftAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
   · have t' := (leftMovesOfStateAux 0 h) t
     exfalso; exact turnBound_ne_zero_of_left_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
-#align pgame.relabelling_move_left_aux PGame.relabellingMoveLeftAux
+#align pgame.relabelling_move_left_aux SetTheory.PGame.relabellingMoveLeftAux
 
 /-- The relabelling showing `moveLeft` applied to a game constructed using `of`
 has itself been constructed using `of`.
@@ -169,7 +170,7 @@ def relabellingMoveLeft (s : S) (t : LeftMoves (ofState s)) :
   trans
   apply relabellingMoveLeftAux
   apply ofStateAuxRelabelling
-#align pgame.relabelling_move_left PGame.relabellingMoveLeft
+#align pgame.relabelling_move_left SetTheory.PGame.relabellingMoveLeft
 
 /-- The relabelling showing `moveRight` applied to a game constructed using `ofStateAux`
 has itself been constructed using `ofStateAux`.
@@ -184,7 +185,7 @@ def relabellingMoveRightAux (n : ℕ) {s : S} (h : turnBound s ≤ n)
   · have t' := (rightMovesOfStateAux 0 h) t
     exfalso; exact turnBound_ne_zero_of_right_move t'.2 (nonpos_iff_eq_zero.mp h)
   · rfl
-#align pgame.relabelling_move_right_aux PGame.relabellingMoveRightAux
+#align pgame.relabelling_move_right_aux SetTheory.PGame.relabellingMoveRightAux
 
 /-- The relabelling showing `moveRight` applied to a game constructed using `of`
 has itself been constructed using `of`.
@@ -194,17 +195,17 @@ def relabellingMoveRight (s : S) (t : RightMoves (ofState s)) :
   trans
   apply relabellingMoveRightAux
   apply ofStateAuxRelabelling
-#align pgame.relabelling_move_right PGame.relabellingMoveRight
+#align pgame.relabelling_move_right SetTheory.PGame.relabellingMoveRight
 
 instance fintypeLeftMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
     Fintype (LeftMoves (ofStateAux n s h)) := by
   apply Fintype.ofEquiv _ (leftMovesOfStateAux _ _).symm
-#align pgame.fintype_left_moves_of_state_aux PGame.fintypeLeftMovesOfStateAux
+#align pgame.fintype_left_moves_of_state_aux SetTheory.PGame.fintypeLeftMovesOfStateAux
 
 instance fintypeRightMovesOfStateAux (n : ℕ) (s : S) (h : turnBound s ≤ n) :
     Fintype (RightMoves (ofStateAux n s h)) := by
   apply Fintype.ofEquiv _ (rightMovesOfStateAux _ _).symm
-#align pgame.fintype_right_moves_of_state_aux PGame.fintypeRightMovesOfStateAux
+#align pgame.fintype_right_moves_of_state_aux SetTheory.PGame.fintypeRightMovesOfStateAux
 
 instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short (ofStateAux n s h)
   | 0, s, h =>
@@ -223,12 +224,12 @@ instance shortOfStateAux : ∀ (n : ℕ) {s : S} (h : turnBound s ≤ n), Short
         shortOfRelabelling (relabellingMoveLeftAux (n + 1) h i).symm (shortOfStateAux n _))
       fun j =>
       shortOfRelabelling (relabellingMoveRightAux (n + 1) h j).symm (shortOfStateAux n _)
-#align pgame.short_of_state_aux PGame.shortOfStateAux
+#align pgame.short_of_state_aux SetTheory.PGame.shortOfStateAux
 
 instance shortOfState (s : S) : Short (ofState s) := by
   dsimp [PGame.ofState]
   infer_instance
-#align pgame.short_of_state PGame.shortOfState
+#align pgame.short_of_state SetTheory.PGame.shortOfState
 
 end PGame
 
@@ -237,6 +238,6 @@ namespace Game
 /-- Construct a combinatorial `Game` from a state. -/
 def ofState {S : Type u} [PGame.State S] (s : S) : Game :=
   ⟦PGame.ofState s⟧
-#align game.of_state Game.ofState
+#align game.of_state SetTheory.Game.ofState
 
 end Game
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module set_theory.game.state
-! leanprover-community/mathlib commit b134b2f5cf6dd25d4bbfd3c498b6e36c11a17225
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.SetTheory.Game.Short
 
+#align_import set_theory.game.state from "leanprover-community/mathlib"@"b134b2f5cf6dd25d4bbfd3c498b6e36c11a17225"
+
 /-!
 # Games described via "the state of the board".
 
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -94,23 +94,23 @@ def ofStateAuxRelabelling :
   | s, 0, 0, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i ; exfalso
+    · intro i; dsimp at i; exfalso
       exact turnBound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j; dsimp at j ; exfalso
+    · intro j; dsimp at j; exfalso
       exact turnBound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, 0, m + 1, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i ; exfalso
+    · intro i; dsimp at i; exfalso
       exact turnBound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hn)
-    · intro j; dsimp at j ; exfalso
+    · intro j; dsimp at j; exfalso
       exact turnBound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hn)
   | s, n + 1, 0, hn, hm => by
     dsimp [PGame.ofStateAux]
     fconstructor; rfl; rfl
-    · intro i; dsimp at i ; exfalso
+    · intro i; dsimp at i; exfalso
       exact turnBound_ne_zero_of_left_move i.2 (nonpos_iff_eq_zero.mp hm)
-    · intro j; dsimp at j ; exfalso
+    · intro j; dsimp at j; exfalso
       exact turnBound_ne_zero_of_right_move j.2 (nonpos_iff_eq_zero.mp hm)
   | s, n + 1, m + 1, hn, hm => by
     dsimp [PGame.ofStateAux]
feat: port SetTheory.Game.State (#5653)

Dependencies 8 + 357

358 files ported (97.8%)
148016 lines ported (97.9%)
Show graph

The unported dependencies are