Cast of natural numbers (additional theorems) #
This file proves additional properties about the canonical homomorphism from
the natural numbers into an additive monoid with a one (Nat.cast
).
Main declarations #
castAddMonoidHom
:cast
bundled as anAddMonoidHom
.castRingHom
:cast
bundled as aRingHom
.
@[simp]
theorem
Nat.coe_castAddMonoidHom
{α : Type u_1}
[AddMonoidWithOne α]
:
↑(Nat.castAddMonoidHom α) = Nat.cast
@[simp]
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
Alias of Nat.coe_nat_dvd
.
theorem
eq_natCast'
{A : Type u_3}
{F : Type u_5}
[AddMonoidWithOne A]
[AddMonoidHomClass F ℕ A]
(f : F)
(h1 : ↑f 1 = 1)
(n : ℕ)
:
↑f n = ↑n
theorem
map_natCast'
{B : Type u_4}
{F : Type u_5}
[AddMonoidWithOne B]
{A : Type u_6}
[AddMonoidWithOne A]
[AddMonoidHomClass F A B]
(f : F)
(h : ↑f 1 = 1)
(n : ℕ)
:
↑f ↑n = ↑n
theorem
ext_nat''
{A : Type u_3}
{F : Type u_4}
[MulZeroOneClass A]
[MonoidWithZeroHomClass F ℕ A]
(f : F)
(g : F)
(h_pos : ∀ {n : ℕ}, 0 < n → ↑f n = ↑g n)
:
f = g
If two MonoidWithZeroHom
s agree on the positive naturals they are equal.
@[simp]
theorem
eq_natCast
{R : Type u_3}
{F : Type u_5}
[NonAssocSemiring R]
[RingHomClass F ℕ R]
(f : F)
(n : ℕ)
:
↑f n = ↑n
@[simp]
theorem
map_natCast
{R : Type u_3}
{S : Type u_4}
{F : Type u_5}
[NonAssocSemiring R]
[NonAssocSemiring S]
[RingHomClass F R S]
(f : F)
(n : ℕ)
:
↑f ↑n = ↑n
@[simp]
theorem
map_ofNat
{R : Type u_3}
{S : Type u_4}
{F : Type u_5}
[NonAssocSemiring R]
[NonAssocSemiring S]
[RingHomClass F R S]
(f : F)
(n : ℕ)
[Nat.AtLeastTwo n]
:
↑f (OfNat.ofNat n) = OfNat.ofNat n
theorem
ext_nat
{R : Type u_3}
{F : Type u_5}
[NonAssocSemiring R]
[RingHomClass F ℕ R]
(f : F)
(g : F)
:
f = g
theorem
RingHom.eq_natCast'
{R : Type u_3}
[NonAssocSemiring R]
(f : ℕ →+* R)
:
f = Nat.castRingHom R
This is primed to match eq_intCast'
.
We don't use RingHomClass
here, since that might cause type-class slowdown for
Subsingleton
Equations
- Nat.uniqueRingHom = { toInhabited := { default := Nat.castRingHom R }, uniq := (_ : ∀ (f : ℕ →+* R), f = Nat.castRingHom R) }
@[simp]
theorem
Pi.ofNat_apply
{α : Type u_1}
{π : α → Type u_3}
[(a : α) → NatCast (π a)]
(n : ℕ)
[Nat.AtLeastTwo n]
(a : α)
:
OfNat.ofNat ((a : α) → π a) n instOfNat a = ↑n