set_theory.game.birthdayMathlib.SetTheory.Game.Birthday

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -225,12 +225,12 @@ theorem SetTheory.PGame.birthday_one_add : (1 + a).birthday = Order.succ a.birth
 #align pgame.birthday_one_add SetTheory.PGame.birthday_one_add
 -/
 
-#print SetTheory.PGame.birthday_nat_cast /-
+#print SetTheory.PGame.birthday_natCast /-
 @[simp]
-theorem SetTheory.PGame.birthday_nat_cast : ∀ n : ℕ, SetTheory.PGame.birthday n = n
+theorem SetTheory.PGame.birthday_natCast : ∀ n : ℕ, SetTheory.PGame.birthday n = n
   | 0 => SetTheory.PGame.birthday_zero
   | n + 1 => by simp [birthday_nat_cast]
-#align pgame.birthday_nat_cast SetTheory.PGame.birthday_nat_cast
+#align pgame.birthday_nat_cast SetTheory.PGame.birthday_natCast
 -/
 
 #print SetTheory.PGame.birthday_add_nat /-
Diff
@@ -81,9 +81,9 @@ theorem SetTheory.PGame.lt_birthday_iff {x : SetTheory.PGame} {o : Ordinal} :
     intro h
     cases' lt_max_iff.1 h with h' h'
     · left
-      rwa [lt_lsub_iff] at h' 
+      rwa [lt_lsub_iff] at h'
     · right
-      rwa [lt_lsub_iff] at h' 
+      rwa [lt_lsub_iff] at h'
   · rintro (⟨i, hi⟩ | ⟨i, hi⟩)
     · exact hi.trans_lt (birthday_move_left_lt i)
     · exact hi.trans_lt (birthday_move_right_lt i)
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
 -/
-import Mathbin.SetTheory.Game.Ordinal
-import Mathbin.SetTheory.Ordinal.NaturalOps
+import SetTheory.Game.Ordinal
+import SetTheory.Ordinal.NaturalOps
 
 #align_import set_theory.game.birthday from "leanprover-community/mathlib"@"9240e8be927a0955b9a82c6c85ef499ee3a626b8"
 
Diff
@@ -33,44 +33,45 @@ universe u
 
 open Ordinal
 
-open scoped NaturalOps PGame
+open scoped NaturalOps SetTheory.PGame
 
-namespace PGame
+namespace SetTheory.PGame
 
-#print PGame.birthday /-
+#print SetTheory.PGame.birthday /-
 /-- The birthday of a pre-game is inductively defined as the least strict upper bound of the
 birthdays of its left and right games. It may be thought as the "step" in which a certain game is
 constructed. -/
-noncomputable def birthday : PGame.{u} → Ordinal.{u}
+noncomputable def SetTheory.PGame.birthday : SetTheory.PGame.{u} → Ordinal.{u}
   | ⟨xl, xr, xL, xR⟩ =>
     max (lsub.{u, u} fun i => birthday (xL i)) (lsub.{u, u} fun i => birthday (xR i))
-#align pgame.birthday PGame.birthday
+#align pgame.birthday SetTheory.PGame.birthday
 -/
 
-#print PGame.birthday_def /-
-theorem birthday_def (x : PGame) :
-    birthday x =
-      max (lsub.{u, u} fun i => birthday (x.moveLeft i))
-        (lsub.{u, u} fun i => birthday (x.moveRight i)) :=
+#print SetTheory.PGame.birthday_def /-
+theorem SetTheory.PGame.birthday_def (x : SetTheory.PGame) :
+    SetTheory.PGame.birthday x =
+      max (lsub.{u, u} fun i => SetTheory.PGame.birthday (x.moveLeft i))
+        (lsub.{u, u} fun i => SetTheory.PGame.birthday (x.moveRight i)) :=
   by cases x; rw [birthday]; rfl
-#align pgame.birthday_def PGame.birthday_def
+#align pgame.birthday_def SetTheory.PGame.birthday_def
 -/
 
-#print PGame.birthday_moveLeft_lt /-
-theorem birthday_moveLeft_lt {x : PGame} (i : x.LeftMoves) : (x.moveLeft i).birthday < x.birthday :=
-  by cases x; rw [birthday]; exact lt_max_of_lt_left (lt_lsub _ i)
-#align pgame.birthday_move_left_lt PGame.birthday_moveLeft_lt
+#print SetTheory.PGame.birthday_moveLeft_lt /-
+theorem SetTheory.PGame.birthday_moveLeft_lt {x : SetTheory.PGame} (i : x.LeftMoves) :
+    (x.moveLeft i).birthday < x.birthday := by cases x; rw [birthday];
+  exact lt_max_of_lt_left (lt_lsub _ i)
+#align pgame.birthday_move_left_lt SetTheory.PGame.birthday_moveLeft_lt
 -/
 
-#print PGame.birthday_moveRight_lt /-
-theorem birthday_moveRight_lt {x : PGame} (i : x.RightMoves) :
+#print SetTheory.PGame.birthday_moveRight_lt /-
+theorem SetTheory.PGame.birthday_moveRight_lt {x : SetTheory.PGame} (i : x.RightMoves) :
     (x.moveRight i).birthday < x.birthday := by cases x; rw [birthday];
   exact lt_max_of_lt_right (lt_lsub _ i)
-#align pgame.birthday_move_right_lt PGame.birthday_moveRight_lt
+#align pgame.birthday_move_right_lt SetTheory.PGame.birthday_moveRight_lt
 -/
 
-#print PGame.lt_birthday_iff /-
-theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
+#print SetTheory.PGame.lt_birthday_iff /-
+theorem SetTheory.PGame.lt_birthday_iff {x : SetTheory.PGame} {o : Ordinal} :
     o < x.birthday ↔
       (∃ i : x.LeftMoves, o ≤ (x.moveLeft i).birthday) ∨
         ∃ i : x.RightMoves, o ≤ (x.moveRight i).birthday :=
@@ -86,11 +87,12 @@ theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
   · rintro (⟨i, hi⟩ | ⟨i, hi⟩)
     · exact hi.trans_lt (birthday_move_left_lt i)
     · exact hi.trans_lt (birthday_move_right_lt i)
-#align pgame.lt_birthday_iff PGame.lt_birthday_iff
+#align pgame.lt_birthday_iff SetTheory.PGame.lt_birthday_iff
 -/
 
-#print PGame.Relabelling.birthday_congr /-
-theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthday x = birthday y
+#print SetTheory.PGame.Relabelling.birthday_congr /-
+theorem SetTheory.PGame.Relabelling.birthday_congr :
+    ∀ {x y : SetTheory.PGame.{u}}, x ≡r y → SetTheory.PGame.birthday x = SetTheory.PGame.birthday y
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩, r =>
     by
     unfold birthday
@@ -104,78 +106,82 @@ theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthda
     · exact ⟨_, (r.move_right j).birthday_congr.symm⟩
     · exact ⟨_, (r.move_right_symm j).birthday_congr⟩
 decreasing_by pgame_wf_tac
-#align pgame.relabelling.birthday_congr PGame.Relabelling.birthday_congr
+#align pgame.relabelling.birthday_congr SetTheory.PGame.Relabelling.birthday_congr
 -/
 
-#print PGame.birthday_eq_zero /-
+#print SetTheory.PGame.birthday_eq_zero /-
 @[simp]
-theorem birthday_eq_zero {x : PGame} :
-    birthday x = 0 ↔ IsEmpty x.LeftMoves ∧ IsEmpty x.RightMoves := by
+theorem SetTheory.PGame.birthday_eq_zero {x : SetTheory.PGame} :
+    SetTheory.PGame.birthday x = 0 ↔ IsEmpty x.LeftMoves ∧ IsEmpty x.RightMoves := by
   rw [birthday_def, max_eq_zero, lsub_eq_zero_iff, lsub_eq_zero_iff]
-#align pgame.birthday_eq_zero PGame.birthday_eq_zero
+#align pgame.birthday_eq_zero SetTheory.PGame.birthday_eq_zero
 -/
 
-#print PGame.birthday_zero /-
+#print SetTheory.PGame.birthday_zero /-
 @[simp]
-theorem birthday_zero : birthday 0 = 0 := by simp [PEmpty.isEmpty]
-#align pgame.birthday_zero PGame.birthday_zero
+theorem SetTheory.PGame.birthday_zero : SetTheory.PGame.birthday 0 = 0 := by simp [PEmpty.isEmpty]
+#align pgame.birthday_zero SetTheory.PGame.birthday_zero
 -/
 
-#print PGame.birthday_one /-
+#print SetTheory.PGame.birthday_one /-
 @[simp]
-theorem birthday_one : birthday 1 = 1 := by rw [birthday_def]; simp
-#align pgame.birthday_one PGame.birthday_one
+theorem SetTheory.PGame.birthday_one : SetTheory.PGame.birthday 1 = 1 := by rw [birthday_def]; simp
+#align pgame.birthday_one SetTheory.PGame.birthday_one
 -/
 
-#print PGame.birthday_star /-
+#print SetTheory.PGame.birthday_star /-
 @[simp]
-theorem birthday_star : birthday star = 1 := by rw [birthday_def]; simp
-#align pgame.birthday_star PGame.birthday_star
+theorem SetTheory.PGame.birthday_star : SetTheory.PGame.birthday SetTheory.PGame.star = 1 := by
+  rw [birthday_def]; simp
+#align pgame.birthday_star SetTheory.PGame.birthday_star
 -/
 
-#print PGame.neg_birthday /-
+#print SetTheory.PGame.neg_birthday /-
 @[simp]
-theorem neg_birthday : ∀ x : PGame, (-x).birthday = x.birthday
+theorem SetTheory.PGame.neg_birthday : ∀ x : SetTheory.PGame, (-x).birthday = x.birthday
   | ⟨xl, xr, xL, xR⟩ => by
     rw [birthday_def, birthday_def, max_comm]
     congr <;> funext <;> apply neg_birthday
-#align pgame.neg_birthday PGame.neg_birthday
+#align pgame.neg_birthday SetTheory.PGame.neg_birthday
 -/
 
-#print PGame.toPGame_birthday /-
+#print SetTheory.PGame.toPGame_birthday /-
 @[simp]
-theorem toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o :=
+theorem SetTheory.PGame.toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o :=
   by
   induction' o using Ordinal.induction with o IH
-  rw [to_pgame_def, PGame.birthday]
+  rw [to_pgame_def, SetTheory.PGame.birthday]
   simp only [lsub_empty, max_zero_right]
   nth_rw 1 [← lsub_typein o]
   congr with x
   exact IH _ (typein_lt_self x)
-#align pgame.to_pgame_birthday PGame.toPGame_birthday
+#align pgame.to_pgame_birthday SetTheory.PGame.toPGame_birthday
 -/
 
-#print PGame.le_birthday /-
-theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPGame
+#print SetTheory.PGame.le_birthday /-
+theorem SetTheory.PGame.le_birthday : ∀ x : SetTheory.PGame, x ≤ x.birthday.toPGame
   | ⟨xl, _, xL, _⟩ =>
-    le_def.2
+    SetTheory.PGame.le_def.2
       ⟨fun i =>
-        Or.inl ⟨toLeftMovesToPGame ⟨_, birthday_moveLeft_lt i⟩, by simp [le_birthday (xL i)]⟩,
+        Or.inl
+          ⟨toLeftMovesToPGame ⟨_, SetTheory.PGame.birthday_moveLeft_lt i⟩, by
+            simp [le_birthday (xL i)]⟩,
         isEmptyElim⟩
-#align pgame.le_birthday PGame.le_birthday
+#align pgame.le_birthday SetTheory.PGame.le_birthday
 -/
 
-variable (a b x : PGame.{u})
+variable (a b x : SetTheory.PGame.{u})
 
-#print PGame.neg_birthday_le /-
-theorem neg_birthday_le : -x.birthday.toPGame ≤ x := by
+#print SetTheory.PGame.neg_birthday_le /-
+theorem SetTheory.PGame.neg_birthday_le : -x.birthday.toPGame ≤ x := by
   simpa only [neg_birthday, ← neg_le_iff] using le_birthday (-x)
-#align pgame.neg_birthday_le PGame.neg_birthday_le
+#align pgame.neg_birthday_le SetTheory.PGame.neg_birthday_le
 -/
 
-#print PGame.birthday_add /-
+#print SetTheory.PGame.birthday_add /-
 @[simp]
-theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.birthday
+theorem SetTheory.PGame.birthday_add :
+    ∀ x y : SetTheory.PGame.{u}, (x + y).birthday = x.birthday ♯ y.birthday
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩ =>
     by
     rw [birthday_def, nadd_def]
@@ -196,46 +202,46 @@ theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.
     · exact lt_max_of_lt_left ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
 decreasing_by pgame_wf_tac
-#align pgame.birthday_add PGame.birthday_add
+#align pgame.birthday_add SetTheory.PGame.birthday_add
 -/
 
-#print PGame.birthday_add_zero /-
-theorem birthday_add_zero : (a + 0).birthday = a.birthday := by simp
-#align pgame.birthday_add_zero PGame.birthday_add_zero
+#print SetTheory.PGame.birthday_add_zero /-
+theorem SetTheory.PGame.birthday_add_zero : (a + 0).birthday = a.birthday := by simp
+#align pgame.birthday_add_zero SetTheory.PGame.birthday_add_zero
 -/
 
-#print PGame.birthday_zero_add /-
-theorem birthday_zero_add : (0 + a).birthday = a.birthday := by simp
-#align pgame.birthday_zero_add PGame.birthday_zero_add
+#print SetTheory.PGame.birthday_zero_add /-
+theorem SetTheory.PGame.birthday_zero_add : (0 + a).birthday = a.birthday := by simp
+#align pgame.birthday_zero_add SetTheory.PGame.birthday_zero_add
 -/
 
-#print PGame.birthday_add_one /-
-theorem birthday_add_one : (a + 1).birthday = Order.succ a.birthday := by simp
-#align pgame.birthday_add_one PGame.birthday_add_one
+#print SetTheory.PGame.birthday_add_one /-
+theorem SetTheory.PGame.birthday_add_one : (a + 1).birthday = Order.succ a.birthday := by simp
+#align pgame.birthday_add_one SetTheory.PGame.birthday_add_one
 -/
 
-#print PGame.birthday_one_add /-
-theorem birthday_one_add : (1 + a).birthday = Order.succ a.birthday := by simp
-#align pgame.birthday_one_add PGame.birthday_one_add
+#print SetTheory.PGame.birthday_one_add /-
+theorem SetTheory.PGame.birthday_one_add : (1 + a).birthday = Order.succ a.birthday := by simp
+#align pgame.birthday_one_add SetTheory.PGame.birthday_one_add
 -/
 
-#print PGame.birthday_nat_cast /-
+#print SetTheory.PGame.birthday_nat_cast /-
 @[simp]
-theorem birthday_nat_cast : ∀ n : ℕ, birthday n = n
-  | 0 => birthday_zero
+theorem SetTheory.PGame.birthday_nat_cast : ∀ n : ℕ, SetTheory.PGame.birthday n = n
+  | 0 => SetTheory.PGame.birthday_zero
   | n + 1 => by simp [birthday_nat_cast]
-#align pgame.birthday_nat_cast PGame.birthday_nat_cast
+#align pgame.birthday_nat_cast SetTheory.PGame.birthday_nat_cast
 -/
 
-#print PGame.birthday_add_nat /-
-theorem birthday_add_nat (n : ℕ) : (a + n).birthday = a.birthday + n := by simp
-#align pgame.birthday_add_nat PGame.birthday_add_nat
+#print SetTheory.PGame.birthday_add_nat /-
+theorem SetTheory.PGame.birthday_add_nat (n : ℕ) : (a + n).birthday = a.birthday + n := by simp
+#align pgame.birthday_add_nat SetTheory.PGame.birthday_add_nat
 -/
 
-#print PGame.birthday_nat_add /-
-theorem birthday_nat_add (n : ℕ) : (↑n + a).birthday = a.birthday + n := by simp
-#align pgame.birthday_nat_add PGame.birthday_nat_add
+#print SetTheory.PGame.birthday_nat_add /-
+theorem SetTheory.PGame.birthday_nat_add (n : ℕ) : (↑n + a).birthday = a.birthday + n := by simp
+#align pgame.birthday_nat_add SetTheory.PGame.birthday_nat_add
 -/
 
-end PGame
+end SetTheory.PGame
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
-
-! This file was ported from Lean 3 source module set_theory.game.birthday
-! leanprover-community/mathlib commit 9240e8be927a0955b9a82c6c85ef499ee3a626b8
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.SetTheory.Game.Ordinal
 import Mathbin.SetTheory.Ordinal.NaturalOps
 
+#align_import set_theory.game.birthday from "leanprover-community/mathlib"@"9240e8be927a0955b9a82c6c85ef499ee3a626b8"
+
 /-!
 # Birthdays of games
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
 
 ! This file was ported from Lean 3 source module set_theory.game.birthday
-! leanprover-community/mathlib commit a347076985674932c0e91da09b9961ed0a79508c
+! leanprover-community/mathlib commit 9240e8be927a0955b9a82c6c85ef499ee3a626b8
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.SetTheory.Ordinal.NaturalOps
 /-!
 # Birthdays of games
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 The birthday of a game is an ordinal that represents at which "step" the game was constructed. We
 define it recursively as the least ordinal larger than the birthdays of its left and right games. We
 prove the basic properties about these.
Diff
@@ -37,6 +37,7 @@ open scoped NaturalOps PGame
 
 namespace PGame
 
+#print PGame.birthday /-
 /-- The birthday of a pre-game is inductively defined as the least strict upper bound of the
 birthdays of its left and right games. It may be thought as the "step" in which a certain game is
 constructed. -/
@@ -44,23 +45,31 @@ noncomputable def birthday : PGame.{u} → Ordinal.{u}
   | ⟨xl, xr, xL, xR⟩ =>
     max (lsub.{u, u} fun i => birthday (xL i)) (lsub.{u, u} fun i => birthday (xR i))
 #align pgame.birthday PGame.birthday
+-/
 
+#print PGame.birthday_def /-
 theorem birthday_def (x : PGame) :
     birthday x =
       max (lsub.{u, u} fun i => birthday (x.moveLeft i))
         (lsub.{u, u} fun i => birthday (x.moveRight i)) :=
   by cases x; rw [birthday]; rfl
 #align pgame.birthday_def PGame.birthday_def
+-/
 
+#print PGame.birthday_moveLeft_lt /-
 theorem birthday_moveLeft_lt {x : PGame} (i : x.LeftMoves) : (x.moveLeft i).birthday < x.birthday :=
   by cases x; rw [birthday]; exact lt_max_of_lt_left (lt_lsub _ i)
 #align pgame.birthday_move_left_lt PGame.birthday_moveLeft_lt
+-/
 
+#print PGame.birthday_moveRight_lt /-
 theorem birthday_moveRight_lt {x : PGame} (i : x.RightMoves) :
     (x.moveRight i).birthday < x.birthday := by cases x; rw [birthday];
   exact lt_max_of_lt_right (lt_lsub _ i)
 #align pgame.birthday_move_right_lt PGame.birthday_moveRight_lt
+-/
 
+#print PGame.lt_birthday_iff /-
 theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
     o < x.birthday ↔
       (∃ i : x.LeftMoves, o ≤ (x.moveLeft i).birthday) ∨
@@ -78,7 +87,9 @@ theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
     · exact hi.trans_lt (birthday_move_left_lt i)
     · exact hi.trans_lt (birthday_move_right_lt i)
 #align pgame.lt_birthday_iff PGame.lt_birthday_iff
+-/
 
+#print PGame.Relabelling.birthday_congr /-
 theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthday x = birthday y
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩, r =>
     by
@@ -94,32 +105,44 @@ theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthda
     · exact ⟨_, (r.move_right_symm j).birthday_congr⟩
 decreasing_by pgame_wf_tac
 #align pgame.relabelling.birthday_congr PGame.Relabelling.birthday_congr
+-/
 
+#print PGame.birthday_eq_zero /-
 @[simp]
 theorem birthday_eq_zero {x : PGame} :
     birthday x = 0 ↔ IsEmpty x.LeftMoves ∧ IsEmpty x.RightMoves := by
   rw [birthday_def, max_eq_zero, lsub_eq_zero_iff, lsub_eq_zero_iff]
 #align pgame.birthday_eq_zero PGame.birthday_eq_zero
+-/
 
+#print PGame.birthday_zero /-
 @[simp]
 theorem birthday_zero : birthday 0 = 0 := by simp [PEmpty.isEmpty]
 #align pgame.birthday_zero PGame.birthday_zero
+-/
 
+#print PGame.birthday_one /-
 @[simp]
 theorem birthday_one : birthday 1 = 1 := by rw [birthday_def]; simp
 #align pgame.birthday_one PGame.birthday_one
+-/
 
+#print PGame.birthday_star /-
 @[simp]
 theorem birthday_star : birthday star = 1 := by rw [birthday_def]; simp
 #align pgame.birthday_star PGame.birthday_star
+-/
 
+#print PGame.neg_birthday /-
 @[simp]
 theorem neg_birthday : ∀ x : PGame, (-x).birthday = x.birthday
   | ⟨xl, xr, xL, xR⟩ => by
     rw [birthday_def, birthday_def, max_comm]
     congr <;> funext <;> apply neg_birthday
 #align pgame.neg_birthday PGame.neg_birthday
+-/
 
+#print PGame.toPGame_birthday /-
 @[simp]
 theorem toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o :=
   by
@@ -130,7 +153,9 @@ theorem toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o :=
   congr with x
   exact IH _ (typein_lt_self x)
 #align pgame.to_pgame_birthday PGame.toPGame_birthday
+-/
 
+#print PGame.le_birthday /-
 theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPGame
   | ⟨xl, _, xL, _⟩ =>
     le_def.2
@@ -138,13 +163,17 @@ theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPGame
         Or.inl ⟨toLeftMovesToPGame ⟨_, birthday_moveLeft_lt i⟩, by simp [le_birthday (xL i)]⟩,
         isEmptyElim⟩
 #align pgame.le_birthday PGame.le_birthday
+-/
 
 variable (a b x : PGame.{u})
 
+#print PGame.neg_birthday_le /-
 theorem neg_birthday_le : -x.birthday.toPGame ≤ x := by
   simpa only [neg_birthday, ← neg_le_iff] using le_birthday (-x)
 #align pgame.neg_birthday_le PGame.neg_birthday_le
+-/
 
+#print PGame.birthday_add /-
 @[simp]
 theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.birthday
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩ =>
@@ -168,30 +197,45 @@ theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.
     · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
 decreasing_by pgame_wf_tac
 #align pgame.birthday_add PGame.birthday_add
+-/
 
+#print PGame.birthday_add_zero /-
 theorem birthday_add_zero : (a + 0).birthday = a.birthday := by simp
 #align pgame.birthday_add_zero PGame.birthday_add_zero
+-/
 
+#print PGame.birthday_zero_add /-
 theorem birthday_zero_add : (0 + a).birthday = a.birthday := by simp
 #align pgame.birthday_zero_add PGame.birthday_zero_add
+-/
 
+#print PGame.birthday_add_one /-
 theorem birthday_add_one : (a + 1).birthday = Order.succ a.birthday := by simp
 #align pgame.birthday_add_one PGame.birthday_add_one
+-/
 
+#print PGame.birthday_one_add /-
 theorem birthday_one_add : (1 + a).birthday = Order.succ a.birthday := by simp
 #align pgame.birthday_one_add PGame.birthday_one_add
+-/
 
+#print PGame.birthday_nat_cast /-
 @[simp]
 theorem birthday_nat_cast : ∀ n : ℕ, birthday n = n
   | 0 => birthday_zero
   | n + 1 => by simp [birthday_nat_cast]
 #align pgame.birthday_nat_cast PGame.birthday_nat_cast
+-/
 
+#print PGame.birthday_add_nat /-
 theorem birthday_add_nat (n : ℕ) : (a + n).birthday = a.birthday + n := by simp
 #align pgame.birthday_add_nat PGame.birthday_add_nat
+-/
 
+#print PGame.birthday_nat_add /-
 theorem birthday_nat_add (n : ℕ) : (↑n + a).birthday = a.birthday + n := by simp
 #align pgame.birthday_nat_add PGame.birthday_nat_add
+-/
 
 end PGame
 
Diff
@@ -121,7 +121,7 @@ theorem neg_birthday : ∀ x : PGame, (-x).birthday = x.birthday
 #align pgame.neg_birthday PGame.neg_birthday
 
 @[simp]
-theorem toPgame_birthday (o : Ordinal) : o.toPgame.birthday = o :=
+theorem toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o :=
   by
   induction' o using Ordinal.induction with o IH
   rw [to_pgame_def, PGame.birthday]
@@ -129,19 +129,19 @@ theorem toPgame_birthday (o : Ordinal) : o.toPgame.birthday = o :=
   nth_rw 1 [← lsub_typein o]
   congr with x
   exact IH _ (typein_lt_self x)
-#align pgame.to_pgame_birthday PGame.toPgame_birthday
+#align pgame.to_pgame_birthday PGame.toPGame_birthday
 
-theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPgame
+theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPGame
   | ⟨xl, _, xL, _⟩ =>
     le_def.2
       ⟨fun i =>
-        Or.inl ⟨toLeftMovesToPgame ⟨_, birthday_moveLeft_lt i⟩, by simp [le_birthday (xL i)]⟩,
+        Or.inl ⟨toLeftMovesToPGame ⟨_, birthday_moveLeft_lt i⟩, by simp [le_birthday (xL i)]⟩,
         isEmptyElim⟩
 #align pgame.le_birthday PGame.le_birthday
 
 variable (a b x : PGame.{u})
 
-theorem neg_birthday_le : -x.birthday.toPgame ≤ x := by
+theorem neg_birthday_le : -x.birthday.toPGame ≤ x := by
   simpa only [neg_birthday, ← neg_le_iff] using le_birthday (-x)
 #align pgame.neg_birthday_le PGame.neg_birthday_le
 
Diff
@@ -71,9 +71,9 @@ theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
     intro h
     cases' lt_max_iff.1 h with h' h'
     · left
-      rwa [lt_lsub_iff] at h'
+      rwa [lt_lsub_iff] at h' 
     · right
-      rwa [lt_lsub_iff] at h'
+      rwa [lt_lsub_iff] at h' 
   · rintro (⟨i, hi⟩ | ⟨i, hi⟩)
     · exact hi.trans_lt (birthday_move_left_lt i)
     · exact hi.trans_lt (birthday_move_right_lt i)
@@ -91,7 +91,8 @@ theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthda
     · exact ⟨_, (r.move_left j).birthday_congr.symm⟩
     · exact ⟨_, (r.move_left_symm j).birthday_congr⟩
     · exact ⟨_, (r.move_right j).birthday_congr.symm⟩
-    · exact ⟨_, (r.move_right_symm j).birthday_congr⟩decreasing_by pgame_wf_tac
+    · exact ⟨_, (r.move_right_symm j).birthday_congr⟩
+decreasing_by pgame_wf_tac
 #align pgame.relabelling.birthday_congr PGame.Relabelling.birthday_congr
 
 @[simp]
@@ -164,8 +165,8 @@ theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.
     · exact lt_max_of_lt_left ((nadd_le_nadd_right hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_right ((nadd_le_nadd_right hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_left ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
-    · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))decreasing_by
-  pgame_wf_tac
+    · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
+decreasing_by pgame_wf_tac
 #align pgame.birthday_add PGame.birthday_add
 
 theorem birthday_add_zero : (a + 0).birthday = a.birthday := by simp
Diff
@@ -33,7 +33,7 @@ universe u
 
 open Ordinal
 
-open NaturalOps PGame
+open scoped NaturalOps PGame
 
 namespace PGame
 
Diff
@@ -49,23 +49,15 @@ theorem birthday_def (x : PGame) :
     birthday x =
       max (lsub.{u, u} fun i => birthday (x.moveLeft i))
         (lsub.{u, u} fun i => birthday (x.moveRight i)) :=
-  by
-  cases x
-  rw [birthday]
-  rfl
+  by cases x; rw [birthday]; rfl
 #align pgame.birthday_def PGame.birthday_def
 
 theorem birthday_moveLeft_lt {x : PGame} (i : x.LeftMoves) : (x.moveLeft i).birthday < x.birthday :=
-  by
-  cases x
-  rw [birthday]
-  exact lt_max_of_lt_left (lt_lsub _ i)
+  by cases x; rw [birthday]; exact lt_max_of_lt_left (lt_lsub _ i)
 #align pgame.birthday_move_left_lt PGame.birthday_moveLeft_lt
 
 theorem birthday_moveRight_lt {x : PGame} (i : x.RightMoves) :
-    (x.moveRight i).birthday < x.birthday := by
-  cases x
-  rw [birthday]
+    (x.moveRight i).birthday < x.birthday := by cases x; rw [birthday];
   exact lt_max_of_lt_right (lt_lsub _ i)
 #align pgame.birthday_move_right_lt PGame.birthday_moveRight_lt
 
@@ -113,16 +105,11 @@ theorem birthday_zero : birthday 0 = 0 := by simp [PEmpty.isEmpty]
 #align pgame.birthday_zero PGame.birthday_zero
 
 @[simp]
-theorem birthday_one : birthday 1 = 1 := by
-  rw [birthday_def]
-  simp
+theorem birthday_one : birthday 1 = 1 := by rw [birthday_def]; simp
 #align pgame.birthday_one PGame.birthday_one
 
 @[simp]
-theorem birthday_star : birthday star = 1 :=
-  by
-  rw [birthday_def]
-  simp
+theorem birthday_star : birthday star = 1 := by rw [birthday_def]; simp
 #align pgame.birthday_star PGame.birthday_star
 
 @[simp]
Diff
@@ -33,19 +33,19 @@ universe u
 
 open Ordinal
 
-open NaturalOps Pgame
+open NaturalOps PGame
 
-namespace Pgame
+namespace PGame
 
 /-- The birthday of a pre-game is inductively defined as the least strict upper bound of the
 birthdays of its left and right games. It may be thought as the "step" in which a certain game is
 constructed. -/
-noncomputable def birthday : Pgame.{u} → Ordinal.{u}
+noncomputable def birthday : PGame.{u} → Ordinal.{u}
   | ⟨xl, xr, xL, xR⟩ =>
     max (lsub.{u, u} fun i => birthday (xL i)) (lsub.{u, u} fun i => birthday (xR i))
-#align pgame.birthday Pgame.birthday
+#align pgame.birthday PGame.birthday
 
-theorem birthday_def (x : Pgame) :
+theorem birthday_def (x : PGame) :
     birthday x =
       max (lsub.{u, u} fun i => birthday (x.moveLeft i))
         (lsub.{u, u} fun i => birthday (x.moveRight i)) :=
@@ -53,23 +53,23 @@ theorem birthday_def (x : Pgame) :
   cases x
   rw [birthday]
   rfl
-#align pgame.birthday_def Pgame.birthday_def
+#align pgame.birthday_def PGame.birthday_def
 
-theorem birthday_moveLeft_lt {x : Pgame} (i : x.LeftMoves) : (x.moveLeft i).birthday < x.birthday :=
+theorem birthday_moveLeft_lt {x : PGame} (i : x.LeftMoves) : (x.moveLeft i).birthday < x.birthday :=
   by
   cases x
   rw [birthday]
   exact lt_max_of_lt_left (lt_lsub _ i)
-#align pgame.birthday_move_left_lt Pgame.birthday_moveLeft_lt
+#align pgame.birthday_move_left_lt PGame.birthday_moveLeft_lt
 
-theorem birthday_moveRight_lt {x : Pgame} (i : x.RightMoves) :
+theorem birthday_moveRight_lt {x : PGame} (i : x.RightMoves) :
     (x.moveRight i).birthday < x.birthday := by
   cases x
   rw [birthday]
   exact lt_max_of_lt_right (lt_lsub _ i)
-#align pgame.birthday_move_right_lt Pgame.birthday_moveRight_lt
+#align pgame.birthday_move_right_lt PGame.birthday_moveRight_lt
 
-theorem lt_birthday_iff {x : Pgame} {o : Ordinal} :
+theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
     o < x.birthday ↔
       (∃ i : x.LeftMoves, o ≤ (x.moveLeft i).birthday) ∨
         ∃ i : x.RightMoves, o ≤ (x.moveRight i).birthday :=
@@ -85,9 +85,9 @@ theorem lt_birthday_iff {x : Pgame} {o : Ordinal} :
   · rintro (⟨i, hi⟩ | ⟨i, hi⟩)
     · exact hi.trans_lt (birthday_move_left_lt i)
     · exact hi.trans_lt (birthday_move_right_lt i)
-#align pgame.lt_birthday_iff Pgame.lt_birthday_iff
+#align pgame.lt_birthday_iff PGame.lt_birthday_iff
 
-theorem Relabelling.birthday_congr : ∀ {x y : Pgame.{u}}, x ≡r y → birthday x = birthday y
+theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthday x = birthday y
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩, r =>
     by
     unfold birthday
@@ -100,65 +100,65 @@ theorem Relabelling.birthday_congr : ∀ {x y : Pgame.{u}}, x ≡r y → birthda
     · exact ⟨_, (r.move_left_symm j).birthday_congr⟩
     · exact ⟨_, (r.move_right j).birthday_congr.symm⟩
     · exact ⟨_, (r.move_right_symm j).birthday_congr⟩decreasing_by pgame_wf_tac
-#align pgame.relabelling.birthday_congr Pgame.Relabelling.birthday_congr
+#align pgame.relabelling.birthday_congr PGame.Relabelling.birthday_congr
 
 @[simp]
-theorem birthday_eq_zero {x : Pgame} :
+theorem birthday_eq_zero {x : PGame} :
     birthday x = 0 ↔ IsEmpty x.LeftMoves ∧ IsEmpty x.RightMoves := by
   rw [birthday_def, max_eq_zero, lsub_eq_zero_iff, lsub_eq_zero_iff]
-#align pgame.birthday_eq_zero Pgame.birthday_eq_zero
+#align pgame.birthday_eq_zero PGame.birthday_eq_zero
 
 @[simp]
 theorem birthday_zero : birthday 0 = 0 := by simp [PEmpty.isEmpty]
-#align pgame.birthday_zero Pgame.birthday_zero
+#align pgame.birthday_zero PGame.birthday_zero
 
 @[simp]
 theorem birthday_one : birthday 1 = 1 := by
   rw [birthday_def]
   simp
-#align pgame.birthday_one Pgame.birthday_one
+#align pgame.birthday_one PGame.birthday_one
 
 @[simp]
 theorem birthday_star : birthday star = 1 :=
   by
   rw [birthday_def]
   simp
-#align pgame.birthday_star Pgame.birthday_star
+#align pgame.birthday_star PGame.birthday_star
 
 @[simp]
-theorem neg_birthday : ∀ x : Pgame, (-x).birthday = x.birthday
+theorem neg_birthday : ∀ x : PGame, (-x).birthday = x.birthday
   | ⟨xl, xr, xL, xR⟩ => by
     rw [birthday_def, birthday_def, max_comm]
     congr <;> funext <;> apply neg_birthday
-#align pgame.neg_birthday Pgame.neg_birthday
+#align pgame.neg_birthday PGame.neg_birthday
 
 @[simp]
 theorem toPgame_birthday (o : Ordinal) : o.toPgame.birthday = o :=
   by
   induction' o using Ordinal.induction with o IH
-  rw [to_pgame_def, Pgame.birthday]
+  rw [to_pgame_def, PGame.birthday]
   simp only [lsub_empty, max_zero_right]
   nth_rw 1 [← lsub_typein o]
   congr with x
   exact IH _ (typein_lt_self x)
-#align pgame.to_pgame_birthday Pgame.toPgame_birthday
+#align pgame.to_pgame_birthday PGame.toPgame_birthday
 
-theorem le_birthday : ∀ x : Pgame, x ≤ x.birthday.toPgame
+theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPgame
   | ⟨xl, _, xL, _⟩ =>
     le_def.2
       ⟨fun i =>
         Or.inl ⟨toLeftMovesToPgame ⟨_, birthday_moveLeft_lt i⟩, by simp [le_birthday (xL i)]⟩,
         isEmptyElim⟩
-#align pgame.le_birthday Pgame.le_birthday
+#align pgame.le_birthday PGame.le_birthday
 
-variable (a b x : Pgame.{u})
+variable (a b x : PGame.{u})
 
 theorem neg_birthday_le : -x.birthday.toPgame ≤ x := by
   simpa only [neg_birthday, ← neg_le_iff] using le_birthday (-x)
-#align pgame.neg_birthday_le Pgame.neg_birthday_le
+#align pgame.neg_birthday_le PGame.neg_birthday_le
 
 @[simp]
-theorem birthday_add : ∀ x y : Pgame.{u}, (x + y).birthday = x.birthday ♯ y.birthday
+theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.birthday
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩ =>
     by
     rw [birthday_def, nadd_def]
@@ -179,31 +179,31 @@ theorem birthday_add : ∀ x y : Pgame.{u}, (x + y).birthday = x.birthday ♯ y.
     · exact lt_max_of_lt_left ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))decreasing_by
   pgame_wf_tac
-#align pgame.birthday_add Pgame.birthday_add
+#align pgame.birthday_add PGame.birthday_add
 
 theorem birthday_add_zero : (a + 0).birthday = a.birthday := by simp
-#align pgame.birthday_add_zero Pgame.birthday_add_zero
+#align pgame.birthday_add_zero PGame.birthday_add_zero
 
 theorem birthday_zero_add : (0 + a).birthday = a.birthday := by simp
-#align pgame.birthday_zero_add Pgame.birthday_zero_add
+#align pgame.birthday_zero_add PGame.birthday_zero_add
 
 theorem birthday_add_one : (a + 1).birthday = Order.succ a.birthday := by simp
-#align pgame.birthday_add_one Pgame.birthday_add_one
+#align pgame.birthday_add_one PGame.birthday_add_one
 
 theorem birthday_one_add : (1 + a).birthday = Order.succ a.birthday := by simp
-#align pgame.birthday_one_add Pgame.birthday_one_add
+#align pgame.birthday_one_add PGame.birthday_one_add
 
 @[simp]
 theorem birthday_nat_cast : ∀ n : ℕ, birthday n = n
   | 0 => birthday_zero
   | n + 1 => by simp [birthday_nat_cast]
-#align pgame.birthday_nat_cast Pgame.birthday_nat_cast
+#align pgame.birthday_nat_cast PGame.birthday_nat_cast
 
 theorem birthday_add_nat (n : ℕ) : (a + n).birthday = a.birthday + n := by simp
-#align pgame.birthday_add_nat Pgame.birthday_add_nat
+#align pgame.birthday_add_nat PGame.birthday_add_nat
 
 theorem birthday_nat_add (n : ℕ) : (↑n + a).birthday = a.birthday + n := by simp
-#align pgame.birthday_nat_add Pgame.birthday_nat_add
+#align pgame.birthday_nat_add PGame.birthday_nat_add
 
-end Pgame
+end PGame
 

Changes in mathlib4

mathlib3
mathlib4
chore: Rename nat_cast/int_cast/rat_cast to natCast/intCast/ratCast (#11486)

Now that I am defining NNRat.cast, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast/intCast/ratCast over nat_cast/int_cast/rat_cast, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.

Diff
@@ -186,10 +186,10 @@ theorem birthday_one_add : (1 + a).birthday = Order.succ a.birthday := by simp
 #align pgame.birthday_one_add SetTheory.PGame.birthday_one_add
 
 @[simp]
-theorem birthday_nat_cast : ∀ n : ℕ, birthday n = n
+theorem birthday_natCast : ∀ n : ℕ, birthday n = n
   | 0 => birthday_zero
-  | n + 1 => by simp [birthday_nat_cast]
-#align pgame.birthday_nat_cast SetTheory.PGame.birthday_nat_cast
+  | n + 1 => by simp [birthday_natCast]
+#align pgame.birthday_nat_cast SetTheory.PGame.birthday_natCast
 
 theorem birthday_add_nat (n : ℕ) : (a + n).birthday = a.birthday + n := by simp
 #align pgame.birthday_add_nat SetTheory.PGame.birthday_add_nat
chore: move to v4.6.0-rc1, merging adaptations from bump/v4.6.0 (#10176)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Joachim Breitner <mail@joachim-breitner.de>

Diff
@@ -89,7 +89,7 @@ theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthda
     · exact ⟨_, (r.moveLeftSymm j).birthday_congr⟩
     · exact ⟨_, (r.moveRight j).birthday_congr.symm⟩
     · exact ⟨_, (r.moveRightSymm j).birthday_congr⟩
-termination_by birthday_congr x y _ => (x, y)
+termination_by x y => (x, y)
 #align pgame.relabelling.birthday_congr SetTheory.PGame.Relabelling.birthday_congr
 
 @[simp]
@@ -170,7 +170,7 @@ theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.
     · exact lt_max_of_lt_right ((nadd_le_nadd_right hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_left ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
-termination_by birthday_add a b => (a, b)
+termination_by a b => (a, b)
 #align pgame.birthday_add SetTheory.PGame.birthday_add
 
 theorem birthday_add_zero : (a + 0).birthday = a.birthday := by simp
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
@@ -17,11 +17,11 @@ prove the basic properties about these.
 
 # Main declarations
 
-- `PGame.birthday`: The birthday of a pre-game.
+- `SetTheory.PGame.birthday`: The birthday of a pre-game.
 
 # Todo
 
-- Define the birthdays of `Game`s and `Surreal`s.
+- Define the birthdays of `SetTheory.Game`s and `Surreal`s.
 - Characterize the birthdays of basic arithmetical operations.
 -/
 
@@ -30,6 +30,8 @@ universe u
 
 open Ordinal
 
+namespace SetTheory
+
 open scoped NaturalOps PGame
 
 namespace PGame
@@ -40,23 +42,23 @@ constructed. -/
 noncomputable def birthday : PGame.{u} → Ordinal.{u}
   | ⟨_, _, xL, xR⟩ =>
     max (lsub.{u, u} fun i => birthday (xL i)) (lsub.{u, u} fun i => birthday (xR i))
-#align pgame.birthday PGame.birthday
+#align pgame.birthday SetTheory.PGame.birthday
 
 theorem birthday_def (x : PGame) :
     birthday x =
       max (lsub.{u, u} fun i => birthday (x.moveLeft i))
         (lsub.{u, u} fun i => birthday (x.moveRight i)) := by
   cases x; rw [birthday]; rfl
-#align pgame.birthday_def PGame.birthday_def
+#align pgame.birthday_def SetTheory.PGame.birthday_def
 
 theorem birthday_moveLeft_lt {x : PGame} (i : x.LeftMoves) : (x.moveLeft i).birthday < x.birthday :=
   by cases x; rw [birthday]; exact lt_max_of_lt_left (lt_lsub _ i)
-#align pgame.birthday_move_left_lt PGame.birthday_moveLeft_lt
+#align pgame.birthday_move_left_lt SetTheory.PGame.birthday_moveLeft_lt
 
 theorem birthday_moveRight_lt {x : PGame} (i : x.RightMoves) :
     (x.moveRight i).birthday < x.birthday := by
   cases x; rw [birthday]; exact lt_max_of_lt_right (lt_lsub _ i)
-#align pgame.birthday_move_right_lt PGame.birthday_moveRight_lt
+#align pgame.birthday_move_right_lt SetTheory.PGame.birthday_moveRight_lt
 
 theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
     o < x.birthday ↔
@@ -73,7 +75,7 @@ theorem lt_birthday_iff {x : PGame} {o : Ordinal} :
   · rintro (⟨i, hi⟩ | ⟨i, hi⟩)
     · exact hi.trans_lt (birthday_moveLeft_lt i)
     · exact hi.trans_lt (birthday_moveRight_lt i)
-#align pgame.lt_birthday_iff PGame.lt_birthday_iff
+#align pgame.lt_birthday_iff SetTheory.PGame.lt_birthday_iff
 
 theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthday x = birthday y
   | ⟨xl, xr, xL, xR⟩, ⟨yl, yr, yL, yR⟩, r => by
@@ -88,32 +90,32 @@ theorem Relabelling.birthday_congr : ∀ {x y : PGame.{u}}, x ≡r y → birthda
     · exact ⟨_, (r.moveRight j).birthday_congr.symm⟩
     · exact ⟨_, (r.moveRightSymm j).birthday_congr⟩
 termination_by birthday_congr x y _ => (x, y)
-#align pgame.relabelling.birthday_congr PGame.Relabelling.birthday_congr
+#align pgame.relabelling.birthday_congr SetTheory.PGame.Relabelling.birthday_congr
 
 @[simp]
 theorem birthday_eq_zero {x : PGame} :
     birthday x = 0 ↔ IsEmpty x.LeftMoves ∧ IsEmpty x.RightMoves := by
   rw [birthday_def, max_eq_zero, lsub_eq_zero_iff, lsub_eq_zero_iff]
-#align pgame.birthday_eq_zero PGame.birthday_eq_zero
+#align pgame.birthday_eq_zero SetTheory.PGame.birthday_eq_zero
 
 @[simp]
 theorem birthday_zero : birthday 0 = 0 := by simp [inferInstanceAs (IsEmpty PEmpty)]
-#align pgame.birthday_zero PGame.birthday_zero
+#align pgame.birthday_zero SetTheory.PGame.birthday_zero
 
 @[simp]
 theorem birthday_one : birthday 1 = 1 := by rw [birthday_def]; simp
-#align pgame.birthday_one PGame.birthday_one
+#align pgame.birthday_one SetTheory.PGame.birthday_one
 
 @[simp]
 theorem birthday_star : birthday star = 1 := by rw [birthday_def]; simp
-#align pgame.birthday_star PGame.birthday_star
+#align pgame.birthday_star SetTheory.PGame.birthday_star
 
 @[simp]
 theorem neg_birthday : ∀ x : PGame, (-x).birthday = x.birthday
   | ⟨xl, xr, xL, xR⟩ => by
     rw [birthday_def, birthday_def, max_comm]
     congr <;> funext <;> apply neg_birthday
-#align pgame.neg_birthday PGame.neg_birthday
+#align pgame.neg_birthday SetTheory.PGame.neg_birthday
 
 @[simp]
 theorem toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o := by
@@ -124,7 +126,7 @@ theorem toPGame_birthday (o : Ordinal) : o.toPGame.birthday = o := by
   conv_rhs => rw [← lsub_typein o]
   congr with x
   exact IH _ (typein_lt_self x)
-#align pgame.to_pgame_birthday PGame.toPGame_birthday
+#align pgame.to_pgame_birthday SetTheory.PGame.toPGame_birthday
 
 theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPGame
   | ⟨xl, _, xL, _⟩ =>
@@ -132,13 +134,13 @@ theorem le_birthday : ∀ x : PGame, x ≤ x.birthday.toPGame
       ⟨fun i =>
         Or.inl ⟨toLeftMovesToPGame ⟨_, birthday_moveLeft_lt i⟩, by simp [le_birthday (xL i)]⟩,
         isEmptyElim⟩
-#align pgame.le_birthday PGame.le_birthday
+#align pgame.le_birthday SetTheory.PGame.le_birthday
 
 variable (a b x : PGame.{u})
 
 theorem neg_birthday_le : -x.birthday.toPGame ≤ x := by
   simpa only [neg_birthday, ← neg_le_iff] using le_birthday (-x)
-#align pgame.neg_birthday_le PGame.neg_birthday_le
+#align pgame.neg_birthday_le SetTheory.PGame.neg_birthday_le
 
 @[simp]
 theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.birthday
@@ -169,30 +171,30 @@ theorem birthday_add : ∀ x y : PGame.{u}, (x + y).birthday = x.birthday ♯ y.
     · exact lt_max_of_lt_left ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
     · exact lt_max_of_lt_right ((nadd_le_nadd_left hj _).trans_lt (lt_lsub _ _))
 termination_by birthday_add a b => (a, b)
-#align pgame.birthday_add PGame.birthday_add
+#align pgame.birthday_add SetTheory.PGame.birthday_add
 
 theorem birthday_add_zero : (a + 0).birthday = a.birthday := by simp
-#align pgame.birthday_add_zero PGame.birthday_add_zero
+#align pgame.birthday_add_zero SetTheory.PGame.birthday_add_zero
 
 theorem birthday_zero_add : (0 + a).birthday = a.birthday := by simp
-#align pgame.birthday_zero_add PGame.birthday_zero_add
+#align pgame.birthday_zero_add SetTheory.PGame.birthday_zero_add
 
 theorem birthday_add_one : (a + 1).birthday = Order.succ a.birthday := by simp
-#align pgame.birthday_add_one PGame.birthday_add_one
+#align pgame.birthday_add_one SetTheory.PGame.birthday_add_one
 
 theorem birthday_one_add : (1 + a).birthday = Order.succ a.birthday := by simp
-#align pgame.birthday_one_add PGame.birthday_one_add
+#align pgame.birthday_one_add SetTheory.PGame.birthday_one_add
 
 @[simp]
 theorem birthday_nat_cast : ∀ n : ℕ, birthday n = n
   | 0 => birthday_zero
   | n + 1 => by simp [birthday_nat_cast]
-#align pgame.birthday_nat_cast PGame.birthday_nat_cast
+#align pgame.birthday_nat_cast SetTheory.PGame.birthday_nat_cast
 
 theorem birthday_add_nat (n : ℕ) : (a + n).birthday = a.birthday + n := by simp
-#align pgame.birthday_add_nat PGame.birthday_add_nat
+#align pgame.birthday_add_nat SetTheory.PGame.birthday_add_nat
 
 theorem birthday_nat_add (n : ℕ) : (↑n + a).birthday = a.birthday + n := by simp
-#align pgame.birthday_nat_add PGame.birthday_nat_add
+#align pgame.birthday_nat_add SetTheory.PGame.birthday_nat_add
 
 end PGame
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,15 +2,12 @@
 Copyright (c) 2022 Violeta Hernández Palacios. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Violeta Hernández Palacios
-
-! This file was ported from Lean 3 source module set_theory.game.birthday
-! leanprover-community/mathlib commit a347076985674932c0e91da09b9961ed0a79508c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.SetTheory.Game.Ordinal
 import Mathlib.SetTheory.Ordinal.NaturalOps
 
+#align_import set_theory.game.birthday from "leanprover-community/mathlib"@"a347076985674932c0e91da09b9961ed0a79508c"
+
 /-!
 # Birthdays of games
 
feat: port SetTheory.Game.Birthday (#5500)

Co-authored-by: int-y1 <jason_yuen2007@hotmail.com>

Dependencies 7 + 312

313 files ported (97.8%)
131270 lines ported (97.7%)
Show graph

The unported dependencies are