Skip to content

Commit

Permalink
feat(linear_algebra/{exterior,tensor}_algebra): Prove that ι is inj…
Browse files Browse the repository at this point in the history
…ective (#5712)

This strategy can't be used on `clifford_algebra`, and the obvious guess of trying to define a `less_triv_sq_quadratic_form_ext` leads to a non-associative multiplication; so for now, we just handle these two cases.



Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
  • Loading branch information
eric-wieser and Vierkantor committed Jan 13, 2021
1 parent b9b6b16 commit b6cca97
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
9 changes: 9 additions & 0 deletions src/linear_algebra/exterior_algebra.lean
Expand Up @@ -162,6 +162,15 @@ begin
simp only [h],
end

lemma ι_injective : function.injective (ι R : M → exterior_algebra R M) :=
-- This is essentially the same proof as `tensor_algebra.ι_injective`
λ x y hxy,
let f : exterior_algebra R M →ₐ[R] triv_sq_zero_ext R M := lift R
⟨triv_sq_zero_ext.inr_hom R M, λ m, triv_sq_zero_ext.inr_mul_inr R _ m m⟩ in
have hfxx : f (ι R x) = triv_sq_zero_ext.inr x := lift_ι_apply _ _ _ _,
have hfyy : f (ι R y) = triv_sq_zero_ext.inr y := lift_ι_apply _ _ _ _,
triv_sq_zero_ext.inr_injective $ hfxx.symm.trans ((f.congr_arg hxy).trans hfyy)

@[simp]
lemma ι_add_mul_swap (x y : M) : ι R x * ι R y + ι R y * ι R x = 0 :=
calc _ = ι R (x + y) * ι R (x + y) : by simp [mul_add, add_mul]
Expand Down
10 changes: 10 additions & 0 deletions src/linear_algebra/tensor_algebra.lean
Expand Up @@ -5,6 +5,7 @@ Author: Adam Topaz.
-/
import algebra.free_algebra
import algebra.ring_quot
import algebra.triv_sq_zero_ext

/-!
# Tensor Algebras
Expand Down Expand Up @@ -121,4 +122,13 @@ begin
exact (lift R).symm.injective w,
end

lemma ι_injective : function.injective (ι R : M → tensor_algebra R M) :=
-- `triv_sq_zero_ext` has a suitable algebra structure and existing proof of injectivity, which
-- we can transfer
λ x y hxy,
let f : tensor_algebra R M →ₐ[R] triv_sq_zero_ext R M := lift R (triv_sq_zero_ext.inr_hom R M) in
have hfxx : f (ι R x) = triv_sq_zero_ext.inr x := lift_ι_apply _ _,
have hfyy : f (ι R y) = triv_sq_zero_ext.inr y := lift_ι_apply _ _,
triv_sq_zero_ext.inr_injective $ hfxx.symm.trans ((f.congr_arg hxy).trans hfyy)

end tensor_algebra

0 comments on commit b6cca97

Please sign in to comment.