Documentation

CombinatorialGames.AugmentedForm

Augmented Form #

This module defines AugmentedForm: these are Siegel's augmented forms, which apart from ordinary options may also have tombstones, as defined in Siegel, Definition 5.1 on p. 212.

The main result is AugmentedForm.instForm.

References #

@[irreducible]
def AugmentedForm :
Type (u + 1)

Like GameForm, but each position may contain Left and/or Right tombstones.

Equations
Instances For

    Check if a given Player has a tombstone.

    Equations
    Instances For

      Construct an AugmentedForm from available options and tombstones.

      Equations
      Instances For
        @[instance_reducible]
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem AugmentedForm.ext {x y : AugmentedForm} (h_moves : ∀ (p : Player), Moves.moves p x = Moves.moves p y) (h_tomb : ∀ (p : Player), hasTombstone p x ↔ hasTombstone p y) :
        x = y

        Two AugmentedForms are equal if they have the same options and tombstones.

        theorem AugmentedForm.ext_iff {x y : AugmentedForm} :
        x = y ↔ (∀ (p : Player), Moves.moves p x = Moves.moves p y) ∧ ∀ (p : Player), hasTombstone p x ↔ hasTombstone p y
        @[irreducible]
        def AugmentedForm.moveRecOn {motive : AugmentedForm → Sort u_1} (x : AugmentedForm) (mk : (x : AugmentedForm) → ((p : Player) → (y : AugmentedForm) → y ∈ Moves.moves p x → motive y) → motive x) :
        motive x

        This is Conway induction.

        Equations
        Instances For
          theorem AugmentedForm.moveRecOn_eq {motive : AugmentedForm → Sort u_1} (x : AugmentedForm) (mk : (x : AugmentedForm) → ((p : Player) → (y : AugmentedForm) → y ∈ Moves.moves p x → motive y) → motive x) :
          moveRecOn x mk = mk x fun (x_1 : Player) (y : AugmentedForm) (x : y ∈ Moves.moves x_1 x) => moveRecOn y mk
          @[instance_reducible]
          noncomputable instance AugmentedForm.instAdd :
          Equations
          @[irreducible]

          Convert a GameForm to an AugmentedForm with no tombstones.

          Equations
          Instances For
            @[irreducible]

            An AugmentedForm is TombstoneFree if no player has a tombstone and all options are TombstoneFree.

            Equations
            Instances For
              @[irreducible]

              Convert a TombstoneFree AugmentedForm to a GameForm by 'forgetting' about the missing tombstones.

              Equations
              Instances For
                @[simp, irreducible]
                @[simp, irreducible]
                theorem AugmentedForm.neg_eq (x : AugmentedForm) :
                -x = ofSetsWithTombs (fun (p : Player) => Set.range fun (xp : ↑(Moves.moves (-p) x)) => -↑xp) fun (p : Player) => hasTombstone (-p) x
                theorem AugmentedForm.add_eq_zero_iff {x y : AugmentedForm} :
                x + y = !{fun (x : Player) => ∅} ↔ x = !{fun (x : Player) => ∅} ∧ y = !{fun (x : Player) => ∅}
                @[instance_reducible]
                noncomputable instance AugmentedForm.instForm :
                Equations
                • One or more equations did not get rendered due to their size.

                The coercion from GameForm to AugmentedForm is an additive monoid homomorphism.

                Equations
                Instances For
                  theorem AugmentedForm.mem_ofGameForm_exists_mem {g : GameForm} {gp : AugmentedForm} {p : Player} (h1 : gp.TombstoneFree) (h2 : gp ∈ Moves.moves p (ofGameForm g)) :
                  ∃ gp' ∈ Moves.moves p g, ofGameForm gp' = gp