Documentation

BourbakiLean2.Set.FiniteCardinal

  • neq_plus_one : a a + 1
Instances
    @[simp]
    theorem Cardinal.Finite.lt_plus_one {a : Cardinal} [h : a.Finite] :
    a < a + 1
    theorem Cardinal.Finite.infer {a : Cardinal} [h : a.Finite] :
    a.Finite
    theorem Cardinal.finite_iff {a : Cardinal} :
    a.Finite a a + 1
    def FiniteCardinal :
    Type (u + 1)
    Equations
    Instances For
      class Finite (α : Type u) :
      Instances
        instance instFiniteValCardinal {a : FiniteCardinal} :
        a.val.Finite
        Equations
        • =
        instance instFiniteMkOfFinite {α : Type u} [Finite α] :
        (Cardinal.mk α).Finite
        Equations
        • =
        theorem Finite.iff {α : Type u} :
        Finite α (Cardinal.mk α).Finite
        def FiniteType :
        Type (u + 1)
        Equations
        Instances For
          Equations
          Instances For
            theorem Cardinal.finite_iff_add_one_finite {a : Cardinal} :
            (a + 1).Finite a.Finite
            instance Cardinal.Finite.succ {a : Cardinal} [h : a.Finite] :
            (a + 1).Finite
            Equations
            • =
            Equations
            Instances For
              theorem Cardinal.Finite.of_le_finite {a b : Cardinal} (h' : b.Finite) (h : a b) :
              a.Finite
              theorem Cardinal.Finite.has_pred {a : Cardinal} (h : a.Finite) (h' : a 0) :
              ∃ (b : Cardinal), a = b + 1
              theorem Cardinal.Finite.has_unique_pred {a : Cardinal} (h : a.Finite) (h' : a 0) :
              ∃! b : Cardinal, a = b + 1
              noncomputable def Cardinal.Finite.pred {a : Cardinal} (h : a.Finite) (h' : a 0) :
              Equations
              Instances For
                @[simp]
                theorem Cardinal.Finite.pred_of_plus_one {a : Cardinal} (h' : (a + 1).Finite) (h'' : a + 1 0) :
                h'.pred h'' = a
                @[simp]
                theorem Cardinal.Finite.pred_plus_one {a : Cardinal} (h' : a.Finite) (h'' : a 0) :
                h'.pred h'' + 1 = a
                instance Cardinal.Finite.pred_finite {a : Cardinal} [h : a.Finite] (h' : a 0) :
                (h.pred h').Finite
                Equations
                • =
                theorem Cardinal.Finite.exists_add_iff_lt {a b : Cardinal} (hfin : b.Finite) :
                (∃ (c : Cardinal), b = a + c + 1) a < b
                theorem Cardinal.Finite.le_pred_iff {a b : Cardinal} (h : a.Finite) (h' : a 0) :
                b < a b h.pred h'
                theorem Cardinal.Finite.lt_add_one_iff {a b : Cardinal} (h : a.Finite) :
                b < a + 1 b a
                theorem Finite.of_inj_finite {α β : Type u} [h : Finite β] (f : Function.Injection α β) :

                bit of finite set stuff

                theorem Finite.of_surj_finite {α β : Type u} [h : Finite α] (f : Function.Surjection α β) :
                theorem Finite.of_bij_finite {α β : Type u} [h : Finite α] (f : Function.Bijection α β) :
                instance Finite.set {α : Type u} {s : Set α} [h : Finite α] :
                Finite s
                Equations
                • =
                instance Finite.subtype {α : Type u} {p : αProp} [h : Finite α] :
                Finite { x : α // p x }
                Equations
                • =
                theorem Finite.subset {α : Type u} {s t : Set α} [h : Finite s] (h' : t s) :
                Finite t
                instance Finite.inter_left {α : Type u} {s t : Set α} [h : Finite s] :
                Finite (s t)
                Equations
                • =
                instance Finite.inter_right {α : Type u} {s t : Set α} [h : Finite t] :
                Finite (s t)
                Equations
                • =
                instance Finite.sdiff {α : Type u} {s t : Set α} [h : Finite s] :
                Finite (s \ t)
                Equations
                • =
                instance Finite.iInter_all {α ι : Type u} [ne : Nonempty ι] {x : ιSet α} [h : ∀ (i : ι), Finite (x i)] :
                Finite (⋂ i : ι, x i)
                Equations
                • =
                theorem Finite.iInter_one {α ι : Type u} {x : ιSet α} {i : ι} [h : Finite (x i)] :
                Finite (⋂ i : ι, x i)
                instance Finite.empty_set {α : Type u} :
                Equations
                • =
                theorem Cardinal.mk_singleton {α : Type u} {a : α} :
                Cardinal.mk {a} = 1
                instance Finite.singleton {α : Type u} {a : α} :
                Finite {a}
                Equations
                • =
                theorem Finite.ssubset_cardinal_lt {α : Type u} {s : Set α} [h : Finite α] (h' : s Set.univ) :
                instance Finite.image {α β : Type u} {s : Set α} [h : Finite s] (f : αβ) :
                Finite (f '' s)
                Equations
                • =
                instance Finite.preimage_bij {α β : Type u} {s : Set β} [h : Finite s] (f : Function.Bijection α β) :
                Finite (f.val ⁻¹' s)
                Equations
                • =
                theorem Finite.surj_of_inj {α β : Type u} [Finite β] {f : αβ} (hab : Equipotent α β) (h : Function.Injective f) :
                theorem Finite.inj_of_surj {α β : Type u} [Finite α] {f : αβ} (hab : Equipotent α β) (h : Function.Surjective f) :
                theorem Finite.bij_iff_inj {α β : Type u} [Finite β] {f : αβ} (hab : Equipotent α β) :
                theorem Finite.bij_iff_surj {α β : Type u} [Finite α] {f : αβ} (hab : Equipotent α β) :
                theorem Cardinal.Finite.induction {p : FiniteCardinalProp} (h0 : p 0, Cardinal.Finite.zero) (hs : ∀ (a : FiniteCardinal), p ap a.val + 1, ) (a : FiniteCardinal) :
                p a
                theorem Cardinal.Finite.recursion_ex {p : FiniteCardinalType u_1} (h0 : p 0, Cardinal.Finite.zero) (hs : (a : FiniteCardinal) → p ap a.val + 1, ) :
                ∃ (f : (x : FiniteCardinal) → p x), f 0, Cardinal.Finite.zero = h0 ∀ (a : FiniteCardinal), f a.val + 1, = hs a (f a)
                noncomputable def FiniteCardinal.recursion {p : FiniteCardinalType u_1} (h0 : p 0, Cardinal.Finite.zero) (hs : (a : FiniteCardinal) → p ap a.val + 1, ) (a : FiniteCardinal) :
                p a
                Equations
                Instances For
                  @[simp]
                  theorem FiniteCardinal.recursion_zero {p : FiniteCardinalType u_1} (h0 : p 0, Cardinal.Finite.zero) (hs : (a : FiniteCardinal) → p ap a.val + 1, ) :
                  @[simp]
                  theorem FiniteCardinal.recursion_succ {p : FiniteCardinalType u_1} {x : FiniteCardinal} (h0 : p 0, Cardinal.Finite.zero) (hs : (a : FiniteCardinal) → p ap a.val + 1, ) :
                  FiniteCardinal.recursion h0 hs x.val + 1, = hs x (FiniteCardinal.recursion h0 hs x)

                  correspondence to normal nats

                  Equations
                  Instances For
                    Equations
                    Instances For
                      @[simp]
                      theorem FiniteCardinal.to_nat_le_iff {x y : FiniteCardinal} :
                      x.to_nat y.to_nat x y
                      @[simp]
                      theorem FiniteCardinal.to_nat_lt_iff {x y : FiniteCardinal} :
                      x.to_nat < y.to_nat x < y
                      instance instFiniteSum {α β : Type u} [Finite α] [Finite β] :
                      Finite (α β)
                      Equations
                      • =
                      instance instFiniteProd {α β : Type u} [Finite α] [Finite β] :
                      Finite (α × β)
                      Equations
                      • =
                      instance instFiniteForall {α β : Type u} [Finite α] [Finite β] :
                      Finite (αβ)
                      Equations
                      • =
                      instance instFiniteInjection {α β : Type u} [Finite α] [Finite β] :
                      Equations
                      • =
                      instance instFiniteSurjection {α β : Type u} [Finite α] [Finite β] :
                      Equations
                      • =
                      instance instFiniteBijection {α β : Type u} [Finite α] [Finite β] :
                      Equations
                      • =
                      Equations
                      • =
                      instance sum_finite {a b : Cardinal} [ha : a.Finite] [hb : b.Finite] :
                      (a + b).Finite
                      Equations
                      • =
                      instance mul_finite {a b : Cardinal} [ha : a.Finite] [hb : b.Finite] :
                      (a * b).Finite
                      Equations
                      • =
                      instance pow_finite {a b : Cardinal} [ha : a.Finite] [hb : b.Finite] :
                      (a ^ b).Finite
                      Equations
                      • =
                      @[simp]
                      theorem FiniteCardinal.to_nat_add {x y : FiniteCardinal} :
                      FiniteCardinal.to_nat x.val + y.val, = x.to_nat + y.to_nat
                      @[simp]
                      theorem FiniteCardinal.to_nat_mul {x y : FiniteCardinal} :
                      FiniteCardinal.to_nat x.val * y.val, = x.to_nat * y.to_nat
                      @[simp]
                      theorem FiniteCardinal.to_nat_pow {x y : FiniteCardinal} :
                      FiniteCardinal.to_nat x.val ^ y.val, = x.to_nat ^ y.to_nat
                      instance instFiniteSubtypeMemSetUnion {α : Type u} {a b : Set α} [Finite a] [Finite b] :
                      Finite (a b)
                      Equations
                      • =
                      instance instFiniteSubtypeMemSetInsert {α : Type u} {a : Set α} {b : α} [Finite a] :
                      Finite (insert b a)
                      Equations
                      • =
                      theorem FiniteCardinal.equipotent_of_nat_eq {n : Nat} {α : Type u} {β : Type v} [Finite α] [Finite β] (h1 : Cardinal.mk α = (FiniteCardinal.of_nat n).val) (h2 : Cardinal.mk β = (FiniteCardinal.of_nat n).val) :
                      instance Finite.sets {α : Type u} [h : Finite α] :
                      Finite (Set α)
                      Equations
                      • =