Theorem: Ideal.sup_mul_inf
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: letI := Classical.decEq (Ideal A)
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
⊢ (I ⊔ J) * (I ⊓ J) = I * J

tactic: letI := Classical.decEq (Associates (Ideal A))
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
⊢ (I ⊔ J) * (I ⊓ J) = I * J

tactic: letI := UniqueFactorizationMonoid.toNormalizedGCDMonoid (Ideal A)
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
⊢ (I ⊔ J) * (I ⊓ J) = I * J

tactic: rw [← hgcd, ← hlcm, associated_iff_eq.mp (gcd_mul_lcm _ _)]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
hgcd : gcd I J = I ⊔ J
hlcm : lcm I J = I ⊓ J
⊢ (I ⊔ J) * (I ⊓ J) = I * J

tactic: rw [gcd_eq_normalize _ _, normalize_eq]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
⊢ gcd I J = I ⊔ J

tactic: rw [dvd_iff_le, sup_le_iff, ← dvd_iff_le, ← dvd_iff_le]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
⊢ gcd I J ∣ I ⊔ J

tactic: exact ⟨gcd_dvd_left _ _, gcd_dvd_right _ _⟩
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
⊢ gcd I J ∣ I ∧ gcd I J ∣ J

tactic: rw [dvd_gcd_iff, dvd_iff_le, dvd_iff_le]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
⊢ I ⊔ J ∣ gcd I J

tactic: simp
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
⊢ I ≤ I ⊔ J ∧ J ≤ I ⊔ J

tactic: rw [lcm_eq_normalize _ _, normalize_eq]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
hgcd : gcd I J = I ⊔ J
⊢ lcm I J = I ⊓ J

tactic: rw [lcm_dvd_iff, dvd_iff_le, dvd_iff_le]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
hgcd : gcd I J = I ⊔ J
⊢ lcm I J ∣ I ⊓ J

tactic: simp
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
hgcd : gcd I J = I ⊔ J
⊢ I ⊓ J ≤ I ∧ I ⊓ J ≤ J

tactic: rw [dvd_iff_le, le_inf_iff, ← dvd_iff_le, ← dvd_iff_le]
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
hgcd : gcd I J = I ⊔ J
⊢ I ⊓ J ∣ lcm I J

tactic: exact ⟨dvd_lcm_left _ _, dvd_lcm_right _ _⟩
state_before: R : Type ?u.886660
A : Type u_1
K : Type ?u.886666
inst✝⁶ : CommRing R
inst✝⁵ : CommRing A
inst✝⁴ : Field K
inst✝³ : IsDomain A
inst✝² : IsDedekindDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
I J : Ideal A
this✝¹ : DecidableEq (Ideal A) := Classical.decEq (Ideal A)
this✝ : DecidableEq (Associates (Ideal A)) := Classical.decEq (Associates (Ideal A))
this : NormalizedGCDMonoid (Ideal A) := toNormalizedGCDMonoid (Ideal A)
hgcd : gcd I J = I ⊔ J
⊢ I ∣ lcm I J ∧ J ∣ lcm I J