Theorem: Submodule.supIndep_torsionBySet_ideal
File: Mathlib/Algebra/Module/Torsion.lean

tactic: rw [disjoint_iff, Finset.sup_eq_iSup,
  iSup_torsionBySet_ideal_eq_torsionBySet_iInf fun i hi j hj ij => hp (hT hi) (hT hj) ij]
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
⊢ Disjoint ((fun i => torsionBySet R M ↑(p i)) i) (Finset.sup T fun i => torsionBySet R M ↑(p i))

tactic: have := GaloisConnection.u_inf
  (b₁ := OrderDual.toDual (p i)) (b₂ := OrderDual.toDual (⨅ i ∈ T, p i)) (torsion_gc R M)
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
⊢ (fun i => torsionBySet R M ↑(p i)) i ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i) = ⊥

tactic: dsimp at this ⊢
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
this :
  torsionBySet R M ↑(↑OrderDual.ofDual (↑OrderDual.toDual (p i) ⊓ ↑OrderDual.toDual (⨅ (i : ι) (_ : i ∈ T), p i))) =
    torsionBySet R M ↑(↑OrderDual.ofDual (↑OrderDual.toDual (p i))) ⊓
      torsionBySet R M ↑(↑OrderDual.ofDual (↑OrderDual.toDual (⨅ (i : ι) (_ : i ∈ T), p i)))
⊢ (fun i => torsionBySet R M ↑(p i)) i ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i) = ⊥

tactic: rw [← this, Ideal.sup_iInf_eq_top, top_coe, torsionBySet_univ]
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
this :
  torsionBySet R M ↑(p i ⊔ ⨅ (i : ι) (_ : i ∈ T), p i) =
    torsionBySet R M ↑(p i) ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i)
⊢ torsionBySet R M ↑(p i) ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i) = ⊥

tactic: intro j hj
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
this :
  torsionBySet R M ↑(p i ⊔ ⨅ (i : ι) (_ : i ∈ T), p i) =
    torsionBySet R M ↑(p i) ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i)
⊢ ∀ (i_1 : ι), i_1 ∈ T → p i ⊔ p i_1 = ⊤

tactic: apply hp hi (hT hj)
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
this :
  torsionBySet R M ↑(p i ⊔ ⨅ (i : ι) (_ : i ∈ T), p i) =
    torsionBySet R M ↑(p i) ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i)
j : ι
hj : j ∈ T
⊢ p i ⊔ p j = ⊤

tactic: rintro rfl
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
this :
  torsionBySet R M ↑(p i ⊔ ⨅ (i : ι) (_ : i ∈ T), p i) =
    torsionBySet R M ↑(p i) ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i)
j : ι
hj : j ∈ T
⊢ i ≠ j

tactic: exact hiT hj
state_before: R : Type u_3
M : Type u_2
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
s : Set R
a : R
ι : Type u_1
p : ι → Ideal R
S : Finset ι
hp : Set.Pairwise ↑S fun i j => p i ⊔ p j = ⊤
inst✝ : DecidableEq ι
T : Finset ι
hT : T ⊆ S
i : ι
hi : i ∈ S
hiT : ¬i ∈ T
this :
  torsionBySet R M ↑(p i ⊔ ⨅ (i : ι) (_ : i ∈ T), p i) =
    torsionBySet R M ↑(p i) ⊓ torsionBySet R M ↑(⨅ (i : ι) (_ : i ∈ T), p i)
hj : i ∈ T
⊢ False