@@ -7,6 +7,7 @@ import algebra.free_algebra
7
7
import algebra.ring_quot
8
8
import algebra.triv_sq_zero_ext
9
9
import algebra.algebra.operations
10
+ import linear_algebra.multilinear.basic
10
11
11
12
/-!
12
13
# Tensor Algebras
@@ -86,8 +87,10 @@ def lift {A : Type*} [semiring A] [algebra R A] : (M →ₗ[R] A) ≃ (tensor_al
86
87
{ to_fun := ring_quot.lift_alg_hom R ∘ λ f,
87
88
⟨free_algebra.lift R ⇑f, λ x y (h : rel R M x y), by induction h; simp [algebra.smul_def]⟩,
88
89
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 _ _) }
91
94
92
95
variables {R}
93
96
@@ -229,6 +232,19 @@ begin
229
232
rw [hx.2 , ring_hom.map_zero]
230
233
end
231
234
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
+
232
248
end tensor_algebra
233
249
234
250
namespace free_algebra
0 commit comments