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
- ⋯ = ⋯
Equations
- Nat.finite_sum x = FiniteCardinal.to_nat ⟨Cardinal.sigma fun (i : ι) => (FiniteCardinal.of_nat (x i)).val, ⋯⟩
Instances For
Equations
- Nat.finite_prod x = FiniteCardinal.to_nat ⟨Cardinal.prod fun (i : ι) => (FiniteCardinal.of_nat (x i)).val, ⋯⟩
Instances For
@[simp]
theorem
Nat.finite_sum_empty
{ι : Type u_1}
[Finite ι]
(x : ι → Nat)
(h : ι → False)
:
Nat.finite_sum x = 0
@[simp]
theorem
Nat.finite_prod_empty
{ι : Type u_1}
[Finite ι]
(x : ι → Nat)
(h : ι → False)
:
Nat.finite_prod x = 1
@[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}
:
Nat.finite_sum x = Nat.finite_sum (x ∘ f.val)
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}
:
Nat.finite_prod x = Nat.finite_prod (x ∘ f.val)
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)
:
@[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.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