File: Mathlib/LinearAlgebra/ExteriorAlgebra/OfAlternating.lean

full_name: AlternatingMap.instModuleAddCommGroup
code: instance AlternatingMap.instModuleAddCommGroup {ι : Type*} :
    Module R (M [⋀^ι]→ₗ[R] N) 
goal: Module R (M [⋀^ι]→ₗ[R] N)

full_name: ExteriorAlgebra.liftAlternating
code: /-- Build a map out of the exterior algebra given a collection of alternating maps acting on each
exterior power -/
def liftAlternating : (∀ i, M [⋀^Fin i]→ₗ[R] N) →ₗ[R] ExteriorAlgebra R M →ₗ[R] N 
goal: ((i : ℕ) → M [⋀^Fin i]→ₗ[R] N) →ₗ[R] ExteriorAlgebra R M →ₗ[R] N

full_name: ExteriorAlgebra.liftAlternating_ι
code: @[simp]
theorem liftAlternating_ι (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) (m : M) :
    liftAlternating (R := R) (M := M) (N := N) f (ι R m) = f 1 ![m] 
goal: (ExteriorAlgebra.liftAlternating f) ((ExteriorAlgebra.ι R) m) = (f 1) ![m]

full_name: ExteriorAlgebra.liftAlternating_ι_mul
code: theorem liftAlternating_ι_mul (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) (m : M)
    (x : ExteriorAlgebra R M) :
    liftAlternating (R := R) (M := M) (N := N) f (ι R m * x) =
    liftAlternating (R := R) (M := M) (N := N) (fun i => (f i.succ).curryLeft m) x 
goal: (ExteriorAlgebra.liftAlternating f) ((ExteriorAlgebra.ι R) m * x) =
  (ExteriorAlgebra.liftAlternating fun i => (f i.succ).curryLeft m) x

full_name: ExteriorAlgebra.liftAlternating_one
code: @[simp]
theorem liftAlternating_one (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) :
    liftAlternating (R := R) (M := M) (N := N) f (1 : ExteriorAlgebra R M) = f 0 0 
goal: (ExteriorAlgebra.liftAlternating f) 1 = (f 0) 0

full_name: ExteriorAlgebra.liftAlternating_algebraMap
code: @[simp]
theorem liftAlternating_algebraMap (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) (r : R) :
    liftAlternating (R := R) (M := M) (N := N) f (algebraMap _ (ExteriorAlgebra R M) r) =
    r • f 0 0 
goal: (ExteriorAlgebra.liftAlternating f) ((algebraMap R (ExteriorAlgebra R M)) r) = r • (f 0) 0

full_name: ExteriorAlgebra.liftAlternating_apply_ιMulti
code: @[simp]
theorem liftAlternating_apply_ιMulti {n : ℕ} (f : ∀ i, M [⋀^Fin i]→ₗ[R] N)
    (v : Fin n → M) : liftAlternating (R := R) (M := M) (N := N) f (ιMulti R n v) = f n v 
goal: (ExteriorAlgebra.liftAlternating f) ((ExteriorAlgebra.ιMulti R n) v) = (f n) v

full_name: ExteriorAlgebra.liftAlternating_comp_ιMulti
code: @[simp]
theorem liftAlternating_comp_ιMulti {n : ℕ} (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) :
    (liftAlternating (R := R) (M := M) (N := N) f).compAlternatingMap (ιMulti R n) = f n 
goal: (ExteriorAlgebra.liftAlternating f).compAlternatingMap (ExteriorAlgebra.ιMulti R n) = f n

full_name: ExteriorAlgebra.liftAlternating_comp
code: @[simp]
theorem liftAlternating_comp (g : N →ₗ[R] N') (f : ∀ i, M [⋀^Fin i]→ₗ[R] N) :
    (liftAlternating (R := R) (M := M) (N := N') fun i => g.compAlternatingMap (f i)) =
    g ∘ₗ liftAlternating (R := R) (M := M) (N := N) f 
goal: (ExteriorAlgebra.liftAlternating fun i => g.compAlternatingMap (f i)) = g ∘ₗ ExteriorAlgebra.liftAlternating f

full_name: ExteriorAlgebra.liftAlternating_ιMulti
code: @[simp]
theorem liftAlternating_ιMulti :
    liftAlternating (R := R) (M := M) (N := ExteriorAlgebra R M) (ιMulti R) =
    (LinearMap.id : ExteriorAlgebra R M →ₗ[R] ExteriorAlgebra R M) 
goal: ExteriorAlgebra.liftAlternating (ExteriorAlgebra.ιMulti R) = LinearMap.id

full_name: ExteriorAlgebra.liftAlternatingEquiv
code: /-- `ExteriorAlgebra.liftAlternating` is an equivalence. -/
@[simps apply symm_apply]
def liftAlternatingEquiv : (∀ i, M [⋀^Fin i]→ₗ[R] N) ≃ₗ[R] ExteriorAlgebra R M →ₗ[R] N 
goal: ((i : ℕ) → M [⋀^Fin i]→ₗ[R] N) ≃ₗ[R] ExteriorAlgebra R M →ₗ[R] N

full_name: ExteriorAlgebra.liftAlternatingEquiv_symm_apply
code: /-- `ExteriorAlgebra.liftAlternating` is an equivalence. -/
@[simps apply symm_apply]
def liftAlternatingEquiv : (∀ i, M [⋀^Fin i]→ₗ[R] N) ≃ₗ[R] ExteriorAlgebra R M →ₗ[R] N 
goal: ExteriorAlgebra.liftAlternatingEquiv.symm F i = F.compAlternatingMap (ExteriorAlgebra.ιMulti R i)

full_name: ExteriorAlgebra.liftAlternatingEquiv_apply
code: /-- `ExteriorAlgebra.liftAlternating` is an equivalence. -/
@[simps apply symm_apply]
def liftAlternatingEquiv : (∀ i, M [⋀^Fin i]→ₗ[R] N) ≃ₗ[R] ExteriorAlgebra R M →ₗ[R] N 
goal: ExteriorAlgebra.liftAlternatingEquiv a = ExteriorAlgebra.liftAlternating a

full_name: ExteriorAlgebra.lhom_ext
code: /-- To show that two linear maps from the exterior algebra agree, it suffices to show they agree on
the exterior powers.

See note [partially-applied ext lemmas] -/
@[ext]
theorem lhom_ext ⦃f g : ExteriorAlgebra R M →ₗ[R] N⦄
    (h : ∀ i, f.compAlternatingMap (ιMulti R i) = g.compAlternatingMap (ιMulti R i)) : f = g 
goal: f = g