Documentation

CombinatorialGames.Nimber.Nat

Finite nimber arithmetic #

This file defines the type alias NatNimber of the natural numbers, endowed with nimber arithmetic. The goal is to define the field structure computably, and prove that it matches that on Nimber.

@[simp]
theorem NatNimber.val_one :
val 1 = 1
@[simp]
theorem NatNimber.not_neg (a✝ : NatNimber) :
¬a✝ < 0
theorem NatNimber.pos_iff_ne_zero {a✝ : NatNimber} :
0 < a✝ a✝ 0
@[simp]
theorem NatNimber.of_eq_zero {a✝ : } :
of a✝ = 0 a✝ = 0
theorem NatNimber.induction {p✝ : NatNimberProp} (i✝ : NatNimber) :
(∀ (j : NatNimber), (∀ k < j, p✝ k)p✝ j)p✝ i✝

Well-founded induction for NatNimber.

@[simp]
theorem NatNimber.of_eq_one {a✝ : } :
of a✝ = 1 a✝ = 1
@[simp]
theorem NatNimber.val_eq_zero {a✝ : NatNimber} :
val a✝ = 0 a✝ = 0
theorem NatNimber.eq_zero_or_pos (a✝ : NatNimber) :
a✝ = 0 0 < a✝
theorem NatNimber.val_eq_iff {a✝ : NatNimber} {b✝ : } :
val a✝ = b✝ a✝ = of b✝
@[simp]
theorem NatNimber.succ_of (a✝ : ) :
Order.succ (of a✝) = of (a✝ + 1)
@[match_pattern]

The identity function between NatNimber and Nat.

Equations
Instances For
    theorem NatNimber.val_lt_iff {a✝ : NatNimber} {b✝ : } :
    val a✝ < b✝ a✝ < of b✝
    @[simp]
    theorem NatNimber.le_zero {a✝ : NatNimber} :
    a✝ 0 a✝ = 0
    @[match_pattern]

    The identity function between Nat and NatNimber.

    Equations
    Instances For
      @[simp]
      @[simp]
      theorem NatNimber.val_image_Iio (a✝ : NatNimber) :
      val '' Set.Iio a✝ = Set.Iio (val a✝)
      @[simp]
      theorem NatNimber.of_val (a✝ : NatNimber) :
      of (val a✝) = a✝
      @[simp]
      theorem NatNimber.zero_le (a✝ : NatNimber) :
      0 a✝
      @[simp]
      theorem NatNimber.val_eq_one {a✝ : NatNimber} :
      val a✝ = 1 a✝ = 1
      @[simp]
      theorem NatNimber.of_lt_iff {a✝ : } {b✝ : NatNimber} :
      of a✝ < b✝ a✝ < val b✝
      theorem NatNimber.val_le_iff {a✝ : NatNimber} {b✝ : } :
      val a✝ b✝ a✝ of b✝
      @[simp]
      theorem NatNimber.of_zero :
      of 0 = 0
      theorem NatNimber.of_eq_iff {a✝ : } {b✝ : NatNimber} :
      of a✝ = b✝ a✝ = val b✝
      @[simp]
      theorem NatNimber.of_one :
      of 1 = 1
      theorem NatNimber.lt_wf :
      WellFounded fun (x1 x2 : NatNimber) => x1 < x2
      @[simp]
      theorem NatNimber.val_zero :
      val 0 = 0
      @[simp]
      theorem NatNimber.of_image_Iio (a✝ : ) :
      of '' Set.Iio a✝ = Set.Iio (of a✝)
      theorem NatNimber.of_le_iff {a✝ : } {b✝ : NatNimber} :
      of a✝ b✝ a✝ val b✝
      def NatNimber.ind {motive✝ : NatNimberSort u_1} (mk : (a : ) → motive✝ (of a)) (a✝ : NatNimber) :
      motive✝ a✝

      A recursor for NatNimber. Use as induction x.

      Equations
      Instances For
        @[simp]
        theorem NatNimber.val_of (a✝ : ) :
        val (of a✝) = a✝
        theorem NatNimber.succ_def (a✝ : NatNimber) :
        Order.succ a✝ = of (val a✝ + 1)

        The natural numbers, endowed with nim operations.

        Equations
        Instances For
          Equations
          @[simp]
          theorem NatNimber.lt_one_iff_zero {a : NatNimber} :
          a < 1 a = 0
          @[simp]
          theorem NatNimber.le_one_iff {a : NatNimber} :
          a 1 a = 0 a = 1

          The embedding NatNimber ↪o Nimber.

          Equations
          Instances For
            @[simp]
            Equations
            Equations
            @[simp]
            theorem NatNimber.toNimber_add (x y : NatNimber) :
            toNimber (x + y) = Nimber.of (val x) + Nimber.of (val y)
            @[simp]
            theorem NatNimber.sub_eq (x y : NatNimber) :
            x - y = x + y
            @[simp]
            theorem NatNimber.neg_eq (x : NatNimber) :
            -x = x