Documentation

BourbakiLean2.Data.Nat.IndexedOps

instance finite_sigma {α : Type u} {x : αCardinal} [h1 : Finite α] [h2 : ∀ (a : α), (x a).Finite] :
(Cardinal.sigma x).Finite
Equations
  • =
instance finite_prod {α : Type u} {x : αCardinal} [h1 : Finite α] [h2 : ∀ (a : α), (x a).Finite] :
(Cardinal.prod x).Finite
Equations
  • =
instance Finite.prod_finite {α : Type u} [Finite α] {x : αType u} [∀ (i : α), Finite (x i)] :
Finite ((i : α) × x i)
Equations
  • =
instance Finite.sigma_finite {α : Type u} [Finite α] {x : αType u} [∀ (i : α), Finite (x i)] :
Finite ((i : α) → x i)
Equations
  • =
instance Finite.pow_finite {α : Type u} [Finite α] :
Finite (Set α)
Equations
  • =
instance instFiniteSubtypeMemSetIUnion {α β : Type u} [Finite α] {x : αSet β} [∀ (i : α), Finite (x i)] :
Finite (⋃ i : α, x i)
Equations
  • =
noncomputable def Nat.finite_sum {ι : Type u_1} [Finite ι] (x : ιNat) :
Equations
Instances For
    noncomputable def Nat.finite_prod {ι : Type u_1} [Finite ι] (x : ιNat) :
    Equations
    Instances For
      @[simp]
      theorem Nat.finite_sum_empty {ι : Type u_1} [Finite ι] (x : ιNat) (h : ιFalse) :
      @[simp]
      theorem Nat.finite_prod_empty {ι : Type u_1} [Finite ι] (x : ιNat) (h : ιFalse) :
      @[simp]
      theorem Nat.finite_sum_unique {ι : Type v} [h : Unique ι] (x : ιNat) :
      Nat.finite_sum x = x default
      @[simp]
      theorem Nat.finite_prod_unique {ι : Type v} [h : Unique ι] (x : ιNat) :
      Nat.finite_prod x = x default
      @[simp]
      theorem Nat.finite_sum_reindex {ι ι' : Type v} [h : Finite ι] [h' : Finite ι'] (f : Function.Bijection ι' ι) {x : ιNat} :
      theorem Nat.finite_sum_reindex_univ {ι : Type v} [h : Finite ι] {x : ιNat} :
      Nat.finite_sum x = Nat.finite_sum fun (i : Set.univ) => x i.val
      @[simp]
      theorem Nat.finite_prod_reindex {ι ι' : Type v} [h : Finite ι] [h' : Finite ι'] (f : Function.Bijection ι' ι) {x : ιNat} :
      theorem Nat.finite_prod_reindex_univ {ι : Type v} [h : Finite ι] {x : ιNat} :
      Nat.finite_prod x = Nat.finite_prod fun (i : Set.univ) => x i.val
      theorem Nat.finite_sum_assoc {ι ι' : Type v} [h : Finite ι] [h' : Finite ι'] {α : ιNat} {p : ι'Set ι} (h'' : Set.IsPartition p) :
      Nat.finite_sum α = Nat.finite_sum fun (i' : ι') => Nat.finite_sum fun (i : (p i')) => α i.val
      theorem Nat.finite_prod_assoc {ι ι' : Type v} [h : Finite ι] [h' : Finite ι'] {α : ιNat} {p : ι'Set ι} (h'' : Set.IsPartition p) :
      Nat.finite_prod α = Nat.finite_prod fun (i' : ι') => Nat.finite_prod fun (i : (p i')) => α i.val
      theorem Nat.finite_sum_assoc2 {ι : Type u} {α : ιNat} [h : Finite ι] {s t : Set ι} (h' : s t = Set.univ) (h'' : s t = ) :
      Nat.finite_sum α = Nat.finite_sum (α Subtype.val) + Nat.finite_sum (α Subtype.val)
      theorem Nat.finite_prod_assoc2 {ι : Type u} {α : ιNat} [h : Finite ι] {s t : Set ι} (h' : s t = Set.univ) (h'' : s t = ) :
      Nat.finite_prod α = Nat.finite_prod (α Subtype.val) * Nat.finite_prod (α Subtype.val)
      theorem Nat.finite_sum_remove_one {ι : Type v} [h : Finite ι] {α : ιNat} (i : ι) :
      Nat.finite_sum α = Nat.finite_sum (α Subtype.val) + α i
      theorem Nat.finite_prod_remove_one {ι : Type v} [h : Finite ι] {α : ιNat} (i : ι) :
      Nat.finite_prod α = Nat.finite_prod (α Subtype.val) * α i
      theorem Nat.finite_sum_mono {ι : Type v} [h : Finite ι] {x y : ιNat} (h' : ∀ (i : ι), x i y i) :
      theorem Nat.finite_sum_lt {ι : Type v} [h : Finite ι] {x y : ιNat} {i : ι} (h' : ∀ (i : ι), x i y i) (h'' : x i < y i) :
      @[simp]
      theorem Nat.finite_sum_zero_iff {ι : Type v} [h : Finite ι] {x : ιNat} :
      Nat.finite_sum x = 0 ∀ (i : ι), x i = 0
      @[simp]
      theorem Nat.finite_prod_zero_iff {ι : Type v} [h : Finite ι] {x : ιNat} :
      Nat.finite_prod x = 0 ∃ (i : ι), x i = 0
      theorem Nat.finite_prod_mono {ι : Type v} [h : Finite ι] {x y : ιNat} (h' : ∀ (i : ι), x i y i) :
      theorem Nat.finite_prod_lt {ι : Type v} [h : Finite ι] {x y : ιNat} {i : ι} (h' : ∀ (i : ι), x i y i) (h'' : x i < y i) (h''' : ∀ (i : ι), 0 < x i) :
      theorem Nat.pow_strict_mono_left {a a' b : Nat} (h : 0 < b) (h' : a < a') :
      a ^ b < a' ^ b
      theorem Nat.sub_add_sub {a b a' b' : Nat} (h : a b) (h' : a' b') :
      b - a + (b' - a') = b + b' - (a + a')
      theorem Nat.mul_finite_sum {ι : Type v} [Finite ι] {x : ιNat} {n : Nat} :
      (Nat.finite_sum fun (i : ι) => n * x i) = n * Nat.finite_sum x
      theorem Nat.finite_prod_pow {ι : Type v} [Finite ι] {x : ιNat} {n : Nat} :
      (Nat.finite_prod fun (i : ι) => x i ^ n) = Nat.finite_prod x ^ n
      theorem FiniteType.cardinality_disj_iUnion {α ι : Type u} [Finite α] [Finite ι] {a : ιSet α} (h : Set.Disjoint a) :
      (Finite.ftype (⋃ i : ι, a i)).cardinality = Nat.finite_sum fun (i : ι) => (Finite.ftype (a i)).cardinality