Commit 2024-10-16 04:43 7994a4b9

View on Github →

refactor(RingTheory/Multiplicity): split to Nat-valued multiplicity and ENat-valued emultiplicity (#16881) Also rename a bunch of stuff, and move most results outside of the multiplicity namespace. Moves (note that the definition of many of these has changed slightly):

  • multiplicity -> emultiplicity
  • multiplicity.finite_def -> multiplicity.Finite.def
  • multiplicity.not_dvd_one_of_finite_one_right -> multiplicity.Finite.not_dvd_of_one_right
  • multiplicity.Int.natCast_multiplicity -> Int.natCast_emultiplicity
  • multiplicity.not_finite_iff_forall -> multiplicity.Finite.not_iff_forall
  • multiplicity.not_unit_of_finite -> multiplicity.Finite.not_unit
  • multiplicity.finite_of_finite_mul_right -> multiplicity.Finite.mul_left
  • multiplicity.pow_dvd_of_le_multiplicity -> pow_dvd_of_le_emultiplicity
  • multiplicity.pow_multiplicity_dvd -> pow_multiplicity_dvd
  • multiplicity.is_greatest -> not_pow_dvd_of_emultiplicity_lt
  • multiplicity.is_greatest' -> multiplicity.Finite.not_pow_dvd_of_multiplicity_lt
  • multiplicity.pos_of_dvd -> emultiplicity_pos_of_dvd
  • multiplicity.unique -> emultiplicity_eq_of_dvd_of_not_dvd
  • multiplicity.unique' -> multiplicity_eq_of_dvd_of_not_dvd
  • multiplicity.le_multiplicity_of_pow_dvd -> le_emultiplicity_of_pow_dvd
  • multiplicity.pow_dvd_iff_le_multiplicity -> pow_dvd_iff_le_emultiplicity
  • multiplicity.multiplicity_lt_iff_not_dvd -> emultiplicity_lt_iff_not_dvd
  • multiplicity.eq_coe_iff -> emultiplicity_eq_coe
  • multiplicity.eq_top_iff -> emultiplicity_eq_top
  • multiplicity.isUnit_left -> multiplicity.Finite.not_of_isUnit_left
  • multiplicity.one_left -> emultiplicity_one_left
  • multiplicity.get_one_right -> multiplicity.Finite.one_right
  • multiplicity.unit_left -> multiplicity.Finite.not_of_unit_left
  • multiplicity.multiplicity_eq_zero -> emultiplicity_eq_zero
  • multiplicity.multiplicity_ne_zero -> emultiplicity_ne_zero
  • multiplicity.eq_top_iff_not_finite -> emultiplicity_eq_top
  • multiplicity.ne_top_iff_finite -> finite_iff_emultiplicity_ne_top
  • multiplicity.lt_top_iff_finite -> emultiplicity_lt_top
  • multiplicity.exists_eq_pow_mul_and_not_dvd -> multiplicity.Finite.exists_eq_pow_mul_and_not_dvd
  • multiplicity.multiplicity_le_multiplicity_iff -> emultiplicity_le_emultiplicity_iff
  • multiplicity.multiplicity_eq_multiplicity_iff -> emultiplicity_eq_emultiplicity_iff
  • multiplicity.le_multiplicity_map -> le_emultiplicity_map
  • multiplicity.multiplicity_map_eq -> emultiplicity_map_eq
  • multiplicity.multiplicity_le_multiplicity_of_dvd_right -> emultiplicity_le_emultiplicity_of_dvd_right
  • multiplicity.eq_of_associated_right -> emultiplicity_eq_of_associated_right
  • multiplicity.dvd_of_multiplicity_pos -> dvd_of_emultiplicity_pos
  • multiplicity.dvd_iff_multiplicity_pos -> dvd_iff_emultiplicity_pos
  • multiplicity.finite_nat_iff -> Nat.multiplicity_finite_iff
  • has_dvd.dvd.multiplicity_pos -> Dvd.multiplicity_pos
  • multiplicity.finite_of_finite_mul_left -> multiplicity.Finite.mul_right
  • multiplicity.isUnit_right -> emultiplicity_of_isUnit_right
  • multiplicity.one_right -> emultiplicity_of_one_right
  • multiplicity.unit_right -> emultiplicity_of_unit_right
  • multiplicity.multiplicity_le_multiplicity_of_dvd_left -> emultiplicity_le_emultiplicity_of_dvd_left
  • multiplicity.eq_of_associated_left -> emultiplicity_eq_of_associated_left
  • multiplicity.ne_zero_of_finite -> multiplicity.Finite.ne_zero
  • multiplicity.zero -> emultiplicity_zero
  • multiplicity.multiplicity_zero_eq_zero_of_ne_zero -> emultiplicity_zero_eq_zero_of_ne_zero
  • multiplicity.multiplicity_mk_eq_multiplicity -> emultiplicity_mk_eq_emultiplicity
  • multiplicity.min_le_multiplicity_add -> min_le_emultiplicity_add
  • multiplicity.neg -> emultiplicity_neg
  • multiplicity.Int.natAbs -> Int.emultiplicity_natAbs
  • multiplicity.multiplicity_add_of_gt -> emultiplicity_add_of_gt
  • multiplicity.multiplicity_sub_of_gt -> emultiplicity_sub_of_gt
  • multiplicity.multiplicity_add_eq_min -> emultiplicity_add_eq_min
  • multiplicity.finite_mul -> Prime.multiplicity_finite_mul
  • multiplicity.finite_mul_iff -> multiplicity.Finite.mul_iff
  • multiplicity.finite_pow -> multiplicity.Finite.pow
  • multiplicity.multiplicity_self -> multiplicity_self
  • multiplicity.get_multiplicity_self -> multiplicity.Finite.emultiplicity_self
  • multiplicity.mul' -> multiplicity_mul
  • multiplicity.mul -> emultiplicity_mul
  • multiplicity.Finset.prod -> Finset.emultiplicity_prod
  • multiplicity.pow' -> multiplicity.Finite.multiplicity_pow
  • multiplicity.pow -> emultiplicity_pow
  • multiplicity.multiplicity_pow_self -> emultiplicity_pow_self
  • multiplicity.multiplicity_pow_self_of_prime -> emultiplicity_pow_self_of_prime
  • multiplicity.finite_int_iff_natAbs_finite -> Int.multiplicity_finite_iff_natAbs_finite
  • multiplicity.finite_int_iff -> Int.multiplicity_finite_int_iff
  • multiplicity.squarefree_iff_multiplicity_le_one -> multiplicity.squarefree_iff_emultiplicity_le_one
  • Nat.multiplicity_eq_card_pow_dvd -> Nat.emultiplicity_eq_card_pow_dvd
  • Nat.Prime.multiplicity_one -> Nat.Prime.emultiplicity_one
  • Nat.Prime.multiplicity_mul -> Nat.Prime.emultiplicity_mul
  • Nat.Prime.multiplicity_pow -> Nat.Prime.emultiplicity_pow
  • Nat.Prime.multiplicity_self -> Nat.Prime.emultiplicity_self
  • Nat.Prime.multiplicity_pow_self -> Nat.Prime.emultiplicity_pow_self
  • Nat.Prime.multiplicity_factorial -> Nat.Prime.emultiplicity_factorial
  • Nat.Prime.multiplicity_factorial_mul_succ -> Nat.Prime.emultiplicity_factorial_mul_succ
  • Nat.Prime.multiplicity_factorial_mul -> Nat.Prime.emultiplicity_factorial_mul
  • Nat.Prime.multiplicity_choose' -> Nat.Prime.emultiplicity_choose'
  • Nat.Prime.multiplicity_choose -> Nat.Prime.emultiplicity_choose
  • Nat.Prime.multiplicity_le_multiplicity_choose_add -> Nat.Prime.emultiplicity_le_emultiplicity_choose_add
  • Nat.Prime.multiplicity_choose_prime_pow_add_multiplicity -> Nat.Prime.emultiplicity_choose_prime_pow_add_emultiplicity
  • Nat.Prime.multiplicity_choose_prime_pow -> Nat.Prime.emultiplicity_choose_prime_pow
  • Nat.Prime.multiplicity_two_factorial_lt -> Nat.Prime.emultiplicity_two_factorial_lt
  • Polynomial.multiplicity_le_one_of_separable -> Polynomial.emultiplicity_le_one_of_separable
  • KummerDedekind.multiplicity_factors_map_eq_multiplicity -> KummerDedekind.emultiplicity_factors_map_eq_emultiplicity
  • padicValNat.maxPowDiv_eq_multiplicity -> padicValNat.maxPowDiv_eq_emultiplicity
  • padicValNat.maxPowDiv_eq_multiplicity_get -> padicValNat.maxPowDiv_eq_multiplicity
  • le_multiplicity_iff_replicate_subperm_primeFactorsList -> le_emultiplicity_iff_replicate_subperm_primeFactorsList
  • multiplicity_prime_le_multiplicity_image_by_factor_orderIso -> emultiplicity_prime_le_emultiplicity_image_by_factor_orderIso
  • multiplicity_prime_eq_multiplicity_image_by_factor_orderIso -> emultiplicity_prime_eq_emultiplicity_image_by_factor_orderIso
  • multiplicity_factor_dvd_iso_eq_multiplicity_of_mem_normalizedFactors -> emultiplicity_factor_dvd_iso_eq_emultiplicity_of_mem_normalizedFactors
  • normalizedFactorsEquivOfQuotEquiv_multiplicity_eq_multiplicity -> normalizedFactorsEquivOfQuotEquiv_emultiplicity_eq_emultiplicity
  • multiplicity_eq_multiplicity_span -> emultiplicity_eq_emultiplicity_span
  • multiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_multiplicity -> emultiplicity_normalizedFactorsEquivSpanNormalizedFactors_eq_emultiplicity
  • multiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_multiplicity -> emultiplicity_normalizedFactorsEquivSpanNormalizedFactors_symm_eq_emultiplicity
  • PowerSeries.order_eq_multiplicity_X -> PowerSeries.order_eq_emultiplicity_X
  • UniqueFactorizationMonoid.le_multiplicity_iff_replicate_le_normalizedFactors -> UniqueFactorizationMonoid.le_emultiplicity_iff_replicate_le_normalizedFactors
  • UniqueFactorizationMonoid.multiplicity_eq_count_normalizedFactors -> UniqueFactorizationMonoid.emultiplicity_eq_count_normalizedFactors
  • multiplicity.addValuation -> multiplicity_addValuation
  • multiplicity.addValuation_apply -> multiplicity_addValuation_apply Deletions:
  • multiplicity.finite_iff_dom
  • multiplicity.decidableNat
  • multiplicity.decidableInt

Estimated changes

added theorem emultiplicity_eq_coe
added theorem emultiplicity_eq_top
added theorem emultiplicity_eq_zero
added theorem emultiplicity_lt_top
added theorem emultiplicity_map_eq
added theorem emultiplicity_mul
added theorem emultiplicity_ne_zero
added theorem emultiplicity_neg
added theorem emultiplicity_one_left
added theorem emultiplicity_pos_iff
added theorem emultiplicity_pow
added theorem emultiplicity_pow_self
added theorem emultiplicity_zero
added theorem le_emultiplicity_map
deleted theorem multiplicity.Finset.prod
deleted theorem multiplicity.Int.natAbs
deleted theorem multiplicity.eq_coe_iff
deleted theorem multiplicity.eq_top_iff
deleted theorem multiplicity.finite_def
deleted theorem multiplicity.finite_mul
modified theorem multiplicity.finite_mul_aux
deleted theorem multiplicity.finite_pow
deleted theorem multiplicity.isUnit_left
deleted theorem multiplicity.isUnit_right
deleted theorem multiplicity.is_greatest'
deleted theorem multiplicity.is_greatest
deleted theorem multiplicity.one_left
deleted theorem multiplicity.one_right
deleted theorem multiplicity.pos_of_dvd
deleted theorem multiplicity.pow
deleted theorem multiplicity.unique'
deleted theorem multiplicity.unique
deleted theorem multiplicity.unit_left
deleted theorem multiplicity.unit_right
deleted def multiplicity
added theorem multiplicity_eq_zero
added theorem multiplicity_map_eq
added theorem multiplicity_mul
added theorem multiplicity_ne_zero
added theorem multiplicity_neg
added theorem multiplicity_pow_self
added theorem multiplicity_self
added theorem multiplicity_sub_of_gt
added theorem pow_multiplicity_dvd