login  home  contents  what's new  discussion  bug reports help  links  subscribe  changes  refresh  edit

## Isometry from Grassmann Multivectors

Representation

K is a unital associative and commutative ring represented by polynomials with rational coefficients of a set of symbols.

fricas
K:=SparseMultivariatePolynomial(Fraction Integer,Symbol)
 (1)
Type: Type

The Grassmann Hopf K-algebra is represented by the Axiom domain Expression consisting of rational functions with coefficients from K over an additional set of symbols and common mathematical operators.

fricas
E:=Expression K
 (2)
Type: Type
fricas
a:=a::Symbol::K; b:=b::Symbol::K; c:=c::Symbol::K;
Type: SparseMultivariatePolynomial?(Fraction(Integer),Symbol)
fricas
P:=P::Symbol::E; Q:=Q::Symbol::E; R:=R::Symbol::E;
Type: Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))

## Grassmann Algebra Operators

Symmetric inner product

fricas
idot:=display(operator('dot,2), (x:List OutputForm):OutputForm +-> if x.1=x.2 then (x.1)^2 else paren hconcat([x.1,_{_\cdot_} ,x.2]));
Type: BasicOperator?
fricas
Dot(A:E,B:E):E == idot(A,B)
Function declaration Dot : (Expression(SparseMultivariatePolynomial(
Fraction(Integer),Symbol)), Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol))) ->
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
) has been added to workspace.
Type: Void
fricas
dot(A:E,B:E):E ==
smaller?(A,B)=>idot(A,B)
idot(B,A)
Function declaration dot : (Expression(SparseMultivariatePolynomial(
Fraction(Integer),Symbol)), Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol))) ->
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
) has been added to workspace.
Type: Void
fricas
test(dot(P, Q)=dot(Q,P))
fricas
Compiling function dot with type (Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol)),
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
)) -> Expression(SparseMultivariatePolynomial(Fraction(Integer),
Symbol))
 (3)
Type: Boolean

Exterior product

fricas
ihat:=display(operator('hat,2), (x:List OutputForm):OutputForm +-> paren hconcat([x.1,_{_\wedge_} ,x.2]));
Type: BasicOperator?
fricas
Hat(A:E,B:E):E == ihat(A,B)
Function declaration Hat : (Expression(SparseMultivariatePolynomial(
Fraction(Integer),Symbol)), Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol))) ->
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
) has been added to workspace.
Type: Void
fricas
hat(A:E,B:E):E ==
A=B=>0
smaller?(A,B)=>ihat(A,B)
-ihat(B,A)
Function declaration hat : (Expression(SparseMultivariatePolynomial(
Fraction(Integer),Symbol)), Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol))) ->
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
) has been added to workspace.
Type: Void
fricas
test(hat(P, Q)=-hat(Q,P)) and test(hat(P,P)=0)
fricas
Compiling function hat with type (Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol)),
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
)) -> Expression(SparseMultivariatePolynomial(Fraction(Integer),
Symbol))
 (4)
Type: Boolean
fricas
combine:=rule
Dot(-A,B) == -dot(A,B)
Dot(A,-B) == -dot(A,B)
Dot(A,B)^2-Dot(A,A)*Dot(B,B) == hat(A,B)^2
-Dot(A,B)^2+Dot(A,A)*Dot(B,B) == -hat(A,B)^2
Dot(A,B)*Dot(A,C)-Dot(A,A)*Dot(B,C) == dot(hat(A,B),hat(A,C))
Dot(A,B)*Dot(B,C)-Dot(B,B)*Dot(A,C) == dot(hat(B,A),hat(B,C))
Dot(B,C)*Dot(A,C)-Dot(C,C)*Dot(A,B) == dot(hat(C,A),hat(C,B))
fricas
Compiling function Dot with type (Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol)),
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
)) -> Expression(SparseMultivariatePolynomial(Fraction(Integer),
Symbol))
 (5)
Type: Ruleset(Integer,SparseMultivariatePolynomial?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))

1. Isometry from Bivector

In 1937 Elie Cartan observed that the Lie algebra of the isometry group , is given by bivectors .

fricas
eq33 := matrix [[-dot(P,P),   dot(Q,P)+c], _
[-dot(P,Q)+c, dot(Q,Q)  ]]
 (6)
Type: Matrix(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
eq35 := inverse(eq33)
 (7)
Type: Union(Matrix(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))),...)
fricas
map(x+->combine(x),eq35)
 (8)
Type: Matrix(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))

1. Isometry from Trivector

Consider the following endomorphism,

 (9)
 (10)

fricas
eq44 := matrix [[dot(P,P),   dot(Q,P)-a, dot(R,P)-b], _
[dot(P,Q)+a, dot(Q,Q),   dot(R,Q)-c], _
[dot(P,R)+b, dot(Q,R)+c, dot(R,R)  ]]
 (11)
Type: Matrix(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
eq47a := adjoint(eq44);

fricas
--)set output tex off
--)set output algebra on
eq47a.adjMat::List List E
 (12)
Type: List(List(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))))
fricas
--)set output tex on
--)set output algebra off
eq47a.detMat
 (13)
Type: Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))

Simplifications

fricas
eq45 := a*R-b*Q+c*P = v
 (14)
Type: Equation(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
eq45a := rule
a*Dot(R,R)-b*Dot(Q,R)+c*Dot(P,R) == dot(R,v)
a*Dot(Q,R)-b*Dot(Q,Q)+c*Dot(P,Q) == dot(Q,v)
a*Dot(P,R)-b*Dot(P,Q)+c*Dot(P,P) == dot(P,v)
-a*Dot(R,R)+b*Dot(Q,R)-c*Dot(P,R) == -dot(R,v)
-a*Dot(Q,R)+b*Dot(Q,Q)-c*Dot(P,Q) == -dot(Q,v)
-a*Dot(P,R)+b*Dot(P,Q)-c*Dot(P,P) == -dot(P,v)
 (15)
Type: Ruleset(Integer,SparseMultivariatePolynomial?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
for i in 3..3 repeat
for j in 2..2 repeat
y:=combine(x); outputAsTex ["y",i,j,y]
z:=eq45a(y)
outputAsTex ["z",i,j,z]
 (16)
 (17)
 (18)
Type: Void
fricas
eq45x := rule
-a*Dot(A,C)+b*Dot(A,B)-c*Dot(A,A) == -dot(A,v)
 (19)
Type: RewriteRule?(Integer,SparseMultivariatePolynomial?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
z
 (20)
Type: Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))
fricas
eq45x z
 (21)
Type: Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))
fricas
variables(z)
 (22)
Type: List(Symbol)
fricas
eq47b := map(x+-> eq45a combine(x),eq47a.adjMat)
 (23)
Type: Matrix(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
map(x+->x^2,eq45)
 (24)
Type: Equation(Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
eq47d := rule
Dot(R,R)*a^2 + Dot(Q,Q)*b^2 + dot(P,P)*c^2 - _
2*c*b*Dot(P,Q) + 2*a*c*Dot(P,R) - 2*a*b*Dot(Q,R) == v^2
 (25)
Type: RewriteRule?(Integer,SparseMultivariatePolynomial?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol)))
fricas
eq47d(eq47a.detMat)
 (26)
Type: Expression(SparseMultivariatePolynomial?(Fraction(Integer),Symbol))

 Subject:   Be Bold !! ( 15 subscribers )