Theorem: ModuleCat.linearIndependent_shortExact
File: Mathlib/Algebra/Category/ModuleCat/Free.lean

Proof steps:
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ LinearIndependent R (Sum.elim (⇑S.f ∘ v) (Function.invFun S.g.toFun ∘ w))
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ LinearIndependent R (⇑S.g ∘ Sum.elim (⇑S.f ∘ v) (Function.invFun S.g.toFun ∘ w) ∘ Sum.inr)
tactic: apply linearIndependent_leftExact hS'.exact hv _ hS'.mono_f rfl
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ LinearIndependent R (⇑S.g ∘ Sum.elim (⇑S.f ∘ v) (Function.invFun S.g.toFun ∘ w) ∘ Sum.inr)
state_after: ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ LinearIndependent R (⇑S.g ∘ Function.invFun ⇑S.g ∘ w)
tactic: dsimp
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ LinearIndependent R (⇑S.g ∘ Function.invFun ⇑S.g ∘ w)
state_after: case h.e'_4
ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ ⇑S.g ∘ Function.invFun ⇑S.g ∘ w = w
tactic: convert hw
state_before: case h.e'_4
ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
⊢ ⇑S.g ∘ Function.invFun ⇑S.g ∘ w = w
state_after: case h.e'_4.h
ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
x✝ : ι'
⊢ (⇑S.g ∘ Function.invFun ⇑S.g ∘ w) x✝ = w x✝
tactic: ext
state_before: case h.e'_4.h
ι : Type u_1
ι' : Type u_2
R : Type u_3
inst✝ : Ring R
S : ShortComplex (ModuleCat R)
hS : S.Exact
hS' : S.ShortExact
v : ι → ↑S.X₁
hv : LinearIndependent R v
u : ι ⊕ ι' → ↑S.X₂
hw✝ : LinearIndependent R (⇑S.g ∘ u ∘ Sum.inr)
hm : Mono S.f
huv : u ∘ Sum.inl = ⇑S.f ∘ v
w : ι' → ↑S.X₃
hw : LinearIndependent R w
x✝ : ι'
⊢ (⇑S.g ∘ Function.invFun ⇑S.g ∘ w) x✝ = w x✝
state_after: no goals
tactic: apply Function.rightInverse_invFun ((epi_iff_surjective _).mp hS'.epi_g)