Theorem: Finsupp.disjoint_lsingle_lsingle
File: Mathlib/LinearAlgebra/Finsupp.lean

tactic: refine'
  (Disjoint.mono
    (lsingle_range_le_ker_lapply s (sᶜ) _)
    (lsingle_range_le_ker_lapply t (tᶜ) _))
    _
state_before: α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
⊢ Disjoint (⨆ (a : α) (_ : a ∈ s), LinearMap.range (lsingle a)) (⨆ (a : α) (_ : a ∈ t), LinearMap.range (lsingle a))

tactic: rw [disjoint_iff_inf_le]
state_before: case refine'_3
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
⊢ Disjoint (⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) (⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a))

tactic: refine' le_trans (le_iInf fun i => _) iInf_ker_lapply_le_bot
state_before: case refine'_3
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
⊢ ((⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) ⊓ ⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a)) ≤ ⊥

tactic: apply disjoint_compl_right
state_before: case refine'_1
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
⊢ Disjoint s (sᶜ)

tactic: apply disjoint_compl_right
state_before: case refine'_2
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
⊢ Disjoint t (tᶜ)

tactic: by_cases his : i ∈ s
state_before: case refine'_3
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
i : α
⊢ ((⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) ⊓ ⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a)) ≤ ker (lapply i)

tactic: exact inf_le_of_left_le (iInf_le_of_le i <| iInf_le _ his)
state_before: case neg
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
i : α
his : ¬i ∈ s
⊢ ((⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) ⊓ ⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a)) ≤ ker (lapply i)

tactic: by_cases hit : i ∈ t
state_before: case pos
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
i : α
his : i ∈ s
⊢ ((⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) ⊓ ⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a)) ≤ ker (lapply i)

tactic: exact inf_le_of_right_le (iInf_le_of_le i <| iInf_le _ hit)
state_before: case neg
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
i : α
his : i ∈ s
hit : ¬i ∈ t
⊢ ((⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) ⊓ ⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a)) ≤ ker (lapply i)

tactic: exact (hs.le_bot ⟨his, hit⟩).elim
state_before: case pos
α : Type u_1
M : Type u_2
N : Type ?u.38530
P : Type ?u.38533
R : Type u_3
S : Type ?u.38539
inst✝⁷ : Semiring R
inst✝⁶ : Semiring S
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
inst✝³ : AddCommMonoid N
inst✝² : Module R N
inst✝¹ : AddCommMonoid P
inst✝ : Module R P
s t : Set α
hs : Disjoint s t
i : α
his : i ∈ s
hit : i ∈ t
⊢ ((⨅ (a : α) (_ : a ∈ sᶜ), ker (lapply a)) ⊓ ⨅ (a : α) (_ : a ∈ tᶜ), ker (lapply a)) ≤ ker (lapply i)