Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 15f49ae

Browse files
committed
feat(linear_algebra/tensor_algebra/basic): add tensor_algebra.tprod (#14197)
This is related to `exterior_power.ι_multi`. Note the new import caused a proof to time out, so I squeezed the simps into term mode.
1 parent 9288a2d commit 15f49ae

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

src/linear_algebra/exterior_algebra/basic.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,9 @@ end
294294
variables (R)
295295
/-- The product of `n` terms of the form `ι R m` is an alternating map.
296296
297-
This is a special case of `multilinear_map.mk_pi_algebra_fin` -/
298-
def ι_multi (n : ℕ) :
299-
alternating_map R M (exterior_algebra R M) (fin n) :=
297+
This is a special case of `multilinear_map.mk_pi_algebra_fin`, and the exterior algebra version of
298+
`tensor_algebra.tprod`. -/
299+
def ι_multi (n : ℕ) : alternating_map R M (exterior_algebra R M) (fin n) :=
300300
let F := (multilinear_map.mk_pi_algebra_fin R n (exterior_algebra R M)).comp_linear_map (λ i, ι R)
301301
in
302302
{ map_eq_zero_of_eq' := λ f x y hfxy hxy, begin

src/linear_algebra/tensor_algebra/basic.lean

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import algebra.free_algebra
77
import algebra.ring_quot
88
import algebra.triv_sq_zero_ext
99
import algebra.algebra.operations
10+
import linear_algebra.multilinear.basic
1011

1112
/-!
1213
# Tensor Algebras
@@ -86,8 +87,10 @@ def lift {A : Type*} [semiring A] [algebra R A] : (M →ₗ[R] A) ≃ (tensor_al
8687
{ to_fun := ring_quot.lift_alg_hom R ∘ λ f,
8788
⟨free_algebra.lift R ⇑f, λ x y (h : rel R M x y), by induction h; simp [algebra.smul_def]⟩,
8889
inv_fun := λ F, F.to_linear_map.comp (ι R),
89-
left_inv := λ f, by { ext, simp [ι], },
90-
right_inv := λ F, by { ext, simp [ι], } }
90+
left_inv := λ f, linear_map.ext $ λ x,
91+
(ring_quot.lift_alg_hom_mk_alg_hom_apply _ _ _ _).trans (free_algebra.lift_ι_apply f x),
92+
right_inv := λ F, ring_quot.ring_quot_ext' _ _ _ $ free_algebra.hom_ext $ funext $ λ x,
93+
(ring_quot.lift_alg_hom_mk_alg_hom_apply _ _ _ _).trans (free_algebra.lift_ι_apply _ _) }
9194

9295
variables {R}
9396

@@ -229,6 +232,19 @@ begin
229232
rw [hx.2, ring_hom.map_zero]
230233
end
231234

235+
variables (R M)
236+
237+
/-- Construct a product of `n` elements of the module within the tensor algebra.
238+
239+
See also `pi_tensor_product.tprod`. -/
240+
def tprod (n : ℕ) : multilinear_map R (λ i : fin n, M) (tensor_algebra R M) :=
241+
(multilinear_map.mk_pi_algebra_fin R n (tensor_algebra R M)).comp_linear_map $ λ _, ι R
242+
243+
@[simp] lemma tprod_apply {n : ℕ} (x : fin n → M) :
244+
tprod R M n x = (list.of_fn (λ i, ι R (x i))).prod := rfl
245+
246+
variables {R M}
247+
232248
end tensor_algebra
233249

234250
namespace free_algebra

0 commit comments

Comments
 (0)