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

Commit 5f328b6

Browse files
committed
feat(linear_algebra/free_algebra): Show that free_monoid forms a basis over free_algebra (#5868)
1 parent 36b3510 commit 5f328b6

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/-
2+
Copyright (c) 2021 Eric Wieser. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Eric Wieser
5+
-/
6+
import linear_algebra.basis
7+
import algebra.free_algebra
8+
import linear_algebra.finsupp_vector_space
9+
/-!
10+
# Linear algebra properties of `free_algebra R X`
11+
12+
This file provides a `free_monoid X` basis on the `free_algebra R X`, and uses it to show the
13+
dimension of the algebra is the cardinality of `list X`
14+
-/
15+
namespace free_algebra
16+
17+
lemma is_basis_free_monoid (R : Type*) (X : Type*) [comm_ring R] :
18+
is_basis R (λ x : free_monoid X, free_monoid.lift (ι R) x) :=
19+
begin
20+
convert (equiv_monoid_algebra_free_monoid.symm.to_linear_equiv : _ ≃ₗ[R] free_algebra R X)
21+
.is_basis finsupp.is_basis_single_one,
22+
ext x,
23+
rw ←one_smul R (free_monoid.lift _ _),
24+
exact (monoid_algebra.lift_single _ _ _).symm,
25+
end
26+
27+
lemma dim_eq {K : Type*} {X : Type*} [field K] :
28+
vector_space.dim K (free_algebra K X) = cardinal.mk (list X) :=
29+
(cardinal.lift_inj.mp (is_basis_free_monoid K X).mk_eq_dim).symm
30+
31+
end free_algebra

0 commit comments

Comments
 (0)