Theorem: eqlCoords.trans (UnitConjecture/FreeModule.lean)

State before:
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
⊢ eqlCoords R X s₁ s₂ → eqlCoords R X s₂ s₃ → eqlCoords R X s₁ s₃
Tactic:
intro hyp₁ hyp₂
State after:
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
⊢ eqlCoords R X s₁ s₃

State before:
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
⊢ eqlCoords R X s₁ s₃
Tactic:
apply funext
State after:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
⊢ ∀ (x : X), FormalSum.coords s₁ x = FormalSum.coords s₃ x

State before:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
⊢ ∀ (x : X), FormalSum.coords s₁ x = FormalSum.coords s₃ x
Tactic:
intro x
State after:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
x : X
⊢ FormalSum.coords s₁ x = FormalSum.coords s₃ x

State before:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
x : X
⊢ FormalSum.coords s₁ x = FormalSum.coords s₃ x
Tactic:
have l₁ := congrFun hyp₁ x
State after:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
x : X
l₁ : FormalSum.coords s₁ x = FormalSum.coords s₂ x
⊢ FormalSum.coords s₁ x = FormalSum.coords s₃ x

State before:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
x : X
l₁ : FormalSum.coords s₁ x = FormalSum.coords s₂ x
⊢ FormalSum.coords s₁ x = FormalSum.coords s₃ x
Tactic:
have l₂ := congrFun hyp₂ x
State after:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
x : X
l₁ : FormalSum.coords s₁ x = FormalSum.coords s₂ x
l₂ : FormalSum.coords s₂ x = FormalSum.coords s₃ x
⊢ FormalSum.coords s₁ x = FormalSum.coords s₃ x

State before:
case h
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
s₁ s₂ s₃ : FormalSum R X
hyp₁ : eqlCoords R X s₁ s₂
hyp₂ : eqlCoords R X s₂ s₃
x : X
l₁ : FormalSum.coords s₁ x = FormalSum.coords s₂ x
l₂ : FormalSum.coords s₂ x = FormalSum.coords s₃ x
⊢ FormalSum.coords s₁ x = FormalSum.coords s₃ x
Tactic:
exact Eq.trans l₁ l₂
State after:
no goals