Commit 2026-08-12 20:03 5658ee5a

View on Github →

refactor: split Data.ENat.Basic (#42271) There's various assert_not_exists scattered throughout the library that don't even permit MonoidWithZero. This is causing problems on #40901, since the smallInductiveDimension of a topological space (a relatively basic notion) is WithBot ℕ∞-valued. We split Data.ENat.Basic into three files:

  • Data.ENat.Basic now imports nothing about monoids.
  • Data.ENat.Monoid contains the lemmas about the LinearOrderedAddCommMonoidWithTop structure.
  • Data.ENat.SuccOrder contains the lemmas about the SuccAddOrder structure. No new results are added. A few proofs are tweaked slightly so as to decrease imports.

Estimated changes

deleted theorem ENat.add_one_le_iff'
deleted theorem ENat.add_one_le_iff
deleted theorem ENat.add_one_pos
deleted theorem ENat.coe_toNatHom
deleted theorem ENat.coe_top_add_one
deleted theorem ENat.eq_top_of_pow
deleted theorem ENat.lift_add
modified theorem ENat.lift_natCast
modified theorem ENat.lift_one
modified theorem ENat.lift_zero
deleted theorem ENat.lt_add_left
deleted theorem ENat.lt_add_one_iff'
deleted theorem ENat.lt_add_one_iff
deleted theorem ENat.lt_one_iff_eq_zero
deleted theorem ENat.lt_two_iff
deleted theorem ENat.map_natCast_eq_zero
deleted theorem ENat.map_natCast_inj
deleted theorem ENat.map_natCast_mul
deleted theorem ENat.map_natCast_nonneg
deleted theorem ENat.mul_le_mul_left_iff
deleted theorem ENat.mul_le_mul_right_iff
deleted theorem ENat.mul_left_strictMono
deleted theorem ENat.mul_right_strictMono
deleted theorem ENat.mul_top'
deleted theorem ENat.mul_top
modified theorem ENat.natCast_le_natCast
modified theorem ENat.natCast_lt_natCast
deleted theorem ENat.natCast_lt_succ
deleted theorem ENat.natCast_mul
deleted theorem ENat.natCast_ne_coe_top
deleted theorem ENat.pow_eq_top_iff
deleted theorem ENat.pow_lt_top_iff
deleted theorem ENat.pow_ne_top_iff
deleted theorem ENat.self_le_mul_left
deleted theorem ENat.self_le_mul_right
deleted theorem ENat.succ_def
deleted theorem ENat.succ_natCast
deleted theorem ENat.succ_top
deleted def ENat.toNatHom
deleted theorem ENat.toNatHom_apply
deleted theorem ENat.toNat_eq_iff
deleted theorem ENat.toNat_le_toNat
deleted theorem ENat.toNat_mul
deleted theorem ENat.top_mul'
deleted theorem ENat.top_mul
deleted theorem ENat.top_pow
added theorem ENat.add_one_pos
added theorem ENat.coe_toNatHom
added theorem ENat.coe_top_add_one
added theorem ENat.eq_top_of_pow
added theorem ENat.lift_add
added theorem ENat.lt_add_left
added theorem ENat.map_natCast_inj
added theorem ENat.map_natCast_mul
added theorem ENat.mul_top'
added theorem ENat.mul_top
added theorem ENat.natCast_lt_succ
added theorem ENat.natCast_mul
added theorem ENat.pow_eq_top_iff
added theorem ENat.pow_lt_top_iff
added theorem ENat.pow_ne_top_iff
added theorem ENat.self_le_mul_left
added theorem ENat.self_le_mul_right
added def ENat.toNatHom
added theorem ENat.toNatHom_apply
added theorem ENat.toNat_eq_iff
added theorem ENat.toNat_le_toNat
added theorem ENat.toNat_mul
added theorem ENat.top_mul'
added theorem ENat.top_mul
added theorem ENat.top_pow