Theorem: FormalSum.coeff_factors (UnitConjecture/FreeModule.lean)

State before:
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
x : X
s : FormalSum R X
⊢ FreeModuleAux.coeff x (sum s) = coords s x
Tactic:
simp [FreeModuleAux.coeff]
State after:
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
x : X
s : FormalSum R X
⊢ Quot.lift (fun s => coords s x) (_ : ∀ (s₁ s₂ : FormalSum R X), ElementaryMove R X s₁ s₂ → coords s₁ x = coords s₂ x)
      (sum s) =
    coords s x

State before:
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
x : X
s : FormalSum R X
⊢ Quot.lift (fun s => coords s x) (_ : ∀ (s₁ s₂ : FormalSum R X), ElementaryMove R X s₁ s₂ → coords s₁ x = coords s₂ x)
      (sum s) =
    coords s x
Tactic:
apply @Quot.liftBeta (r := ElementaryMove R X) (f := fun s => s.coords x)
State after:
case c
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
x : X
s : FormalSum R X
⊢ ∀ (a b : FormalSum R X), ElementaryMove R X a b → coords a x = coords b x

State before:
case c
R : Type
inst✝² : Ring R
inst✝¹ : DecidableEq R
X : Type
inst✝ : DecidableEq X
x : X
s : FormalSum R X
⊢ ∀ (a b : FormalSum R X), ElementaryMove R X a b → coords a x = coords b x
Tactic:
apply coords_move_invariant
State after:
no goals