Finite Cardinality Functions #
Main Definitions #
Nat.card α
is the cardinality ofα
as a natural number. Ifα
is infinite,Nat.card α = 0
.PartENat.card α
is the cardinality ofα
as an extended natural number (usingPart ℕ
). Ifα
is infinite,PartENat.card α = ⊤
.
@[simp]
Because this theorem takes Fintype α
as a non-instance argument, it can be used in particular
when Fintype.card
ends up with different instance than the one found by inference
theorem
Nat.card_le_card_of_injective
{α : Type u}
{β : Type v}
[Finite β]
(f : α → β)
(hf : Function.Injective f)
:
theorem
Nat.card_le_card_of_surjective
{α : Type u}
{β : Type v}
[Finite α]
(f : α → β)
(hf : Function.Surjective f)
:
theorem
Nat.card_eq_of_bijective
{α : Type u_1}
{β : Type u_2}
(f : α → β)
(hf : Function.Bijective f)
:
theorem
Nat.bijective_iff_injective_and_card
{α : Type u_1}
{β : Type u_2}
[Finite β]
(f : α → β)
:
Function.Bijective f ↔ Function.Injective f ∧ Nat.card α = Nat.card β
theorem
Nat.bijective_iff_surjective_and_card
{α : Type u_1}
{β : Type u_2}
[Finite α]
(f : α → β)
:
Function.Bijective f ↔ Function.Surjective f ∧ Nat.card α = Nat.card β
theorem
Function.Injective.bijective_of_nat_card_le
{α : Type u_1}
{β : Type u_2}
[Finite β]
{f : α → β}
(inj : Function.Injective f)
(hc : Nat.card β ≤ Nat.card α)
:
theorem
Function.Surjective.bijective_of_nat_card_le
{α : Type u_1}
{β : Type u_2}
[Finite α]
{f : α → β}
(surj : Function.Surjective f)
(hc : Nat.card α ≤ Nat.card β)
:
theorem
Nat.card_image_of_injective
{α : Type u_1}
{β : Type u_2}
{f : α → β}
(hf : Function.Injective f)
(s : Set α)
:
PartENat.card α
is the cardinality of α
as an extended natural number.
If α
is infinite, PartENat.card α = ⊤
.
Equations
- PartENat.card α = Cardinal.toPartENat (Cardinal.mk α)
Instances For
@[simp]
theorem
PartENat.card_eq_coe_fintype_card
{α : Type u_1}
[Fintype α]
:
PartENat.card α = ↑(Fintype.card α)
@[simp]
@[simp]
theorem
PartENat.card_sum
(α : Type u_3)
(β : Type u_4)
:
PartENat.card (α ⊕ β) = PartENat.card α + PartENat.card β
@[simp]
theorem
PartENat.card_image_of_injOn
{α : Type u}
{β : Type v}
{f : α → β}
{s : Set α}
(h : Set.InjOn f s)
:
PartENat.card ↑(f '' s) = PartENat.card ↑s
theorem
PartENat.card_image_of_injective
{α : Type u}
{β : Type v}
(f : α → β)
(s : Set α)
(h : Function.Injective f)
:
PartENat.card ↑(f '' s) = PartENat.card ↑s
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]