Theorem: LinearMap.iInf_invariant
File: Mathlib/LinearAlgebra/Basic.lean

tactic: have : ∀ i, (p i).map f ≤ p i := by
  rintro i - ⟨v, hv, rfl⟩
  exact hf i v hv
state_before: F : Type ?u.937493
R : Type u_1
R₁ : Type ?u.936901
R₂ : Type ?u.936904
R₃ : Type ?u.936907
R₄ : Type ?u.936910
S : Type ?u.936913
K : Type ?u.936916
K₂ : Type ?u.936919
M : Type u_3
M' : Type ?u.936925
M₁ : Type ?u.936928
M₂ : Type ?u.936931
M₃ : Type ?u.936934
M₄ : Type ?u.936937
N : Type ?u.936940
N₂ : Type ?u.936943
ι✝ : Type ?u.936946
V : Type ?u.936949
V₂ : Type ?u.936952
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M'
inst✝⁷ : Module R M
inst✝⁶ : Module R M'
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
q₁ q₁' : Submodule R M'
r : R
x y : M
sc : SemilinearMapClass F σ₁₂ M M₂
σ : R →+* R
inst✝ : RingHomSurjective σ
ι : Sort u_2
f : M →ₛₗ[σ] M
p : ι → Submodule R M
hf : ∀ (i : ι) (v : M), v ∈ p i → ↑f v ∈ p i
⊢ ∀ (v : M), v ∈ iInf p → ↑f v ∈ iInf p

tactic: suffices (iInf p).map f ≤ iInf p by exact fun v hv => this ⟨v, hv, rfl⟩
state_before: F : Type ?u.937493
R : Type u_1
R₁ : Type ?u.936901
R₂ : Type ?u.936904
R₃ : Type ?u.936907
R₄ : Type ?u.936910
S : Type ?u.936913
K : Type ?u.936916
K₂ : Type ?u.936919
M : Type u_3
M' : Type ?u.936925
M₁ : Type ?u.936928
M₂ : Type ?u.936931
M₃ : Type ?u.936934
M₄ : Type ?u.936937
N : Type ?u.936940
N₂ : Type ?u.936943
ι✝ : Type ?u.936946
V : Type ?u.936949
V₂ : Type ?u.936952
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M'
inst✝⁷ : Module R M
inst✝⁶ : Module R M'
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
q₁ q₁' : Submodule R M'
r : R
x y : M
sc : SemilinearMapClass F σ₁₂ M M₂
σ : R →+* R
inst✝ : RingHomSurjective σ
ι : Sort u_2
f : M →ₛₗ[σ] M
p : ι → Submodule R M
hf : ∀ (i : ι) (v : M), v ∈ p i → ↑f v ∈ p i
this : ∀ (i : ι), map f (p i) ≤ p i
⊢ ∀ (v : M), v ∈ iInf p → ↑f v ∈ iInf p

tactic: exact le_iInf fun i => (Submodule.map_mono (iInf_le p i)).trans (this i)
state_before: F : Type ?u.937493
R : Type u_1
R₁ : Type ?u.936901
R₂ : Type ?u.936904
R₃ : Type ?u.936907
R₄ : Type ?u.936910
S : Type ?u.936913
K : Type ?u.936916
K₂ : Type ?u.936919
M : Type u_3
M' : Type ?u.936925
M₁ : Type ?u.936928
M₂ : Type ?u.936931
M₃ : Type ?u.936934
M₄ : Type ?u.936937
N : Type ?u.936940
N₂ : Type ?u.936943
ι✝ : Type ?u.936946
V : Type ?u.936949
V₂ : Type ?u.936952
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M'
inst✝⁷ : Module R M
inst✝⁶ : Module R M'
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
q₁ q₁' : Submodule R M'
r : R
x y : M
sc : SemilinearMapClass F σ₁₂ M M₂
σ : R →+* R
inst✝ : RingHomSurjective σ
ι : Sort u_2
f : M →ₛₗ[σ] M
p : ι → Submodule R M
hf : ∀ (i : ι) (v : M), v ∈ p i → ↑f v ∈ p i
this : ∀ (i : ι), map f (p i) ≤ p i
⊢ map f (iInf p) ≤ iInf p

tactic: rintro i - ⟨v, hv, rfl⟩
state_before: F : Type ?u.937493
R : Type u_1
R₁ : Type ?u.936901
R₂ : Type ?u.936904
R₃ : Type ?u.936907
R₄ : Type ?u.936910
S : Type ?u.936913
K : Type ?u.936916
K₂ : Type ?u.936919
M : Type u_3
M' : Type ?u.936925
M₁ : Type ?u.936928
M₂ : Type ?u.936931
M₃ : Type ?u.936934
M₄ : Type ?u.936937
N : Type ?u.936940
N₂ : Type ?u.936943
ι✝ : Type ?u.936946
V : Type ?u.936949
V₂ : Type ?u.936952
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M'
inst✝⁷ : Module R M
inst✝⁶ : Module R M'
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
q₁ q₁' : Submodule R M'
r : R
x y : M
sc : SemilinearMapClass F σ₁₂ M M₂
σ : R →+* R
inst✝ : RingHomSurjective σ
ι : Sort u_2
f : M →ₛₗ[σ] M
p : ι → Submodule R M
hf : ∀ (i : ι) (v : M), v ∈ p i → ↑f v ∈ p i
⊢ ∀ (i : ι), map f (p i) ≤ p i

tactic: exact hf i v hv
state_before: case intro.intro
F : Type ?u.937493
R : Type u_1
R₁ : Type ?u.936901
R₂ : Type ?u.936904
R₃ : Type ?u.936907
R₄ : Type ?u.936910
S : Type ?u.936913
K : Type ?u.936916
K₂ : Type ?u.936919
M : Type u_3
M' : Type ?u.936925
M₁ : Type ?u.936928
M₂ : Type ?u.936931
M₃ : Type ?u.936934
M₄ : Type ?u.936937
N : Type ?u.936940
N₂ : Type ?u.936943
ι✝ : Type ?u.936946
V : Type ?u.936949
V₂ : Type ?u.936952
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M'
inst✝⁷ : Module R M
inst✝⁶ : Module R M'
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
q₁ q₁' : Submodule R M'
r : R
x y : M
sc : SemilinearMapClass F σ₁₂ M M₂
σ : R →+* R
inst✝ : RingHomSurjective σ
ι : Sort u_2
f : M →ₛₗ[σ] M
p : ι → Submodule R M
hf : ∀ (i : ι) (v : M), v ∈ p i → ↑f v ∈ p i
i : ι
v : M
hv : v ∈ ↑(p i)
⊢ ↑f v ∈ p i

tactic: exact fun v hv => this ⟨v, hv, rfl⟩
state_before: F : Type ?u.937493
R : Type u_1
R₁ : Type ?u.936901
R₂ : Type ?u.936904
R₃ : Type ?u.936907
R₄ : Type ?u.936910
S : Type ?u.936913
K : Type ?u.936916
K₂ : Type ?u.936919
M : Type u_3
M' : Type ?u.936925
M₁ : Type ?u.936928
M₂ : Type ?u.936931
M₃ : Type ?u.936934
M₄ : Type ?u.936937
N : Type ?u.936940
N₂ : Type ?u.936943
ι✝ : Type ?u.936946
V : Type ?u.936949
V₂ : Type ?u.936952
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : AddCommMonoid M'
inst✝⁷ : Module R M
inst✝⁶ : Module R M'
inst✝⁵ : Module R₂ M₂
inst✝⁴ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
σ₂₁ : R₂ →+* R
inst✝³ : RingHomInvPair σ₁₂ σ₂₁
inst✝² : RingHomInvPair σ₂₁ σ₁₂
inst✝¹ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
q₁ q₁' : Submodule R M'
r : R
x y : M
sc : SemilinearMapClass F σ₁₂ M M₂
σ : R →+* R
inst✝ : RingHomSurjective σ
ι : Sort u_2
f : M →ₛₗ[σ] M
p : ι → Submodule R M
hf : ∀ (i : ι) (v : M), v ∈ p i → ↑f v ∈ p i
this✝ : ∀ (i : ι), map f (p i) ≤ p i
this : map f (iInf p) ≤ iInf p
⊢ ∀ (v : M), v ∈ iInf p → ↑f v ∈ iInf p