GCD and LCM operations on multisets #
Main definitions #
Multiset.gcd- the greatest common denominator of aMultisetof elements of aGCDMonoidMultiset.lcm- the least common multiple of aMultisetof elements of aGCDMonoid
Implementation notes #
TODO: simplify with a tactic and Data.Multiset.Lattice
Tags #
multiset, gcd
LCM #
@[simp]
@[simp]
theorem Multiset.lcm_cons {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α) (s : Multiset α) :
@[simp]
theorem Multiset.lcm_singleton {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {a : α} :
@[simp]
theorem Multiset.lcm_add {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (s₁ s₂ : Multiset α) :
theorem Multiset.lcm_dvd {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {s : Multiset α} {a : α} :
theorem Multiset.dvd_lcm {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {s : Multiset α} {a : α} (h : a ∈ s) :
theorem Multiset.lcm_mono {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {s₁ s₂ : Multiset α} (h : s₁ ⊆ s₂) :
@[simp]
theorem Multiset.normalize_lcm {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (s : Multiset α) :
@[simp]
theorem Multiset.lcm_eq_zero_iff {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [Nontrivial α] (s : Multiset α) :
theorem Multiset.lcm_ne_zero_iff {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [Nontrivial α] (s : Multiset α) :
@[simp]
theorem Multiset.lcm_dedup {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (s : Multiset α) :
@[simp]
theorem Multiset.lcm_ndunion {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (s₁ s₂ : Multiset α) :
@[simp]
theorem Multiset.lcm_union {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (s₁ s₂ : Multiset α) :
@[simp]
theorem Multiset.lcm_ndinsert {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (a : α) (s : Multiset α) :
GCD #
@[simp]
@[simp]
theorem Multiset.gcd_cons {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α) (s : Multiset α) :
@[simp]
theorem Multiset.gcd_singleton {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {a : α} :
@[simp]
theorem Multiset.gcd_add {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (s₁ s₂ : Multiset α) :
theorem Multiset.dvd_gcd {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {s : Multiset α} {a : α} :
theorem Multiset.gcd_dvd {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {s : Multiset α} {a : α} (h : a ∈ s) :
theorem Multiset.gcd_mono {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] {s₁ s₂ : Multiset α} (h : s₁ ⊆ s₂) :
@[simp]
theorem Multiset.normalize_gcd {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (s : Multiset α) :
theorem Multiset.gcd_eq_zero_iff {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (s : Multiset α) :
theorem Multiset.gcd_map_mul {α : Type u_2} [CommMonoidWithZero α] [StrongNormalizedGCDMonoid α] (a : α) (s : Multiset α) :
theorem Multiset.associated_gcd_map_mul {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] (a : α) (s : Multiset α) :
@[simp]
theorem Multiset.gcd_dedup {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (s : Multiset α) :
@[simp]
theorem Multiset.gcd_ndunion {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (s₁ s₂ : Multiset α) :
@[simp]
theorem Multiset.gcd_union {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (s₁ s₂ : Multiset α) :
@[simp]
theorem Multiset.gcd_ndinsert {α : Type u_1} [CommMonoidWithZero α] [NormalizedGCDMonoid α] [DecidableEq α] (a : α) (s : Multiset α) :