Definition and basic properties of extended natural numbers #
In this file we define ENat (notation: ℕ∞) to be WithTop ℕ and prove some basic lemmas
about this type.
Implementation details #
There are two natural coercions from ℕ to WithTop ℕ = ENat: WithTop.some and Nat.cast. In
Lean 3, this difference was hidden in typeclass instances. Since these instances were definitionally
equal, we did not duplicate generic lemmas about WithTop α and WithTop.some coercion for ENat
and Nat.cast coercion. If you need to apply a lemma about WithTop, you may either rewrite back
and forth using ENat.some_eq_coe, or restate the lemma for ENat.
TODO #
Unify ENat.add_iSup/ENat.iSup_add with ENNReal.add_iSup/ENNReal.iSup_add. The key property
of ENat and ENNReal we are using is that all a are either absorbing for addition (a + b = a
for all b), or that it's order-cancellable (a + b ≤ a + c → b ≤ c for all b, c), and
similarly for multiplication.
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Lemmas about WithTop expect (and can output) WithTop.some but the normal form for coercion
ℕ → ℕ∞ is Nat.cast.
Equations
- ENat.instSuccAddOrder = { toSuccOrder := instSuccOrderENat, succ_eq_add_one := ⋯ }
Equations
- ENat.instWellFoundedRelation = { rel := fun (x1 x2 : ℕ∞) => x1 < x2, wf := ENat.instWellFoundedRelation._proof_1 }
Conversion of ℕ∞ to ℕ sending ∞ to 0.
Equations
Instances For
Homomorphism from ℕ∞ to ℕ sending ∞ to 0.
Equations
- ENat.toNatHom = { toFun := ENat.toNat, map_zero' := ENat.toNatHom._proof_1, map_one' := ENat.toNatHom._proof_2, map_mul' := ⋯ }
Instances For
Alias of the reverse direction of ENat.coe_toNat_eq_self.
Version of WithTop.forall_coe_le_iff_le using Nat.cast rather than WithTop.some.
Version of WithTop.eq_of_forall_coe_le_iff using Nat.cast rather than WithTop.some.
Equations
- ENat.instUniqueUnits = { toInhabited := Units.instInhabited, uniq := ⋯ }
A version of WithTop.map for AddMonoidHoms.
Instances For
A version of ENat.map for MonoidWithZeroHoms.
Instances For
A version of ENat.map for RingHoms.