Plane-based Geometric algebra #
This files defines the projectivized vector space projectivize V
, and its associated geometric algebra CGA
.
A typical usage would use PGA (euclidean_space ℝ 3)
.
This file is underdeveloped compared to one for conformalize
, but is included as a skeleton of how to proceed.
@[protected, instance]
noncomputable
def
projectivize.module
(V : Type u_1)
[normed_add_comm_group V]
[inner_product_space ℝ V] :
module ℝ (projectivize V)
A projectivized vector has additional e0 component
Equations
- projectivize V = (V × ℝ)
Instances for projectivize
@[protected, instance]
def
projectivize.add_comm_group
(V : Type u_1)
[normed_add_comm_group V]
[inner_product_space ℝ V] :
Define linear maps to extract the new components
noncomputable
def
projectivize.v
{V : Type u_1}
[normed_add_comm_group V]
[inner_product_space ℝ V] :
projectivize V →ₗ[ℝ] V
Equations
noncomputable
def
projectivize.c_n0
{V : Type u_1}
[normed_add_comm_group V]
[inner_product_space ℝ V] :
Equations
The metric is the metric of V with the n0 term ignored.
noncomputable
def
projectivize.Q
{V : Type u_1}
[normed_add_comm_group V]
[inner_product_space ℝ V] :
@[simp]
theorem
projectivize.Q_apply
{V : Type u_1}
[normed_add_comm_group V]
[inner_product_space ℝ V]
(x : projectivize V) :
⇑projectivize.Q x = ‖⇑projectivize.v x‖ ^ 2
Show the definition is what we expect.
@[reducible]
Define the Plane-based Geometric Algebra over V.
noncomputable
def
projectivize.up
(V : Type u_1)
[normed_add_comm_group V]
[inner_product_space ℝ V]
(x : V) :
And the embedding of the vector space into it. Note that often the dual of this result is used instead, but we do not have that in our formalization yet!
Equations
- projectivize.up V x = ⇑(clifford_algebra.ι projectivize.Q) (x, 1)