Isometry from Grassmann Multivectors
Representation
K
is a unital associative and commutative ring represented by polynomials
with rational coefficients of a set of symbols.
axiom
K:=SparseMultivariatePolynomial(Fraction Integer,Symbol)
Type: Domain
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.
axiom
E:=Expression K
Type: Domain
axiom
a:=a::Symbol::K; b:=b::Symbol::K;
c:=c::Symbol::K;
Type: SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)
axiom
P:=P::Symbol::E; Q:=Q::Symbol::E;
R:=R::Symbol::E;
Type: Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol))
Grassmann Algebra Operators
Symmetric inner product
axiom
idot:=display(operator('dot,2), (x:List OutputForm):OutputForm +->
hconcat([x.1,_{_\cdot_} ,x.2]));
axiom
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
axiom
test(dot(P, Q)=dot(Q,P))
axiom
Compiling function dot with type (Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol)),
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
)) -> Expression(SparseMultivariatePolynomial(Fraction(Integer),
Symbol))
Type: Boolean
Exterior product
axiom
ihat:=display(operator('hat,2), (x:List OutputForm):OutputForm +->
hconcat([x.1,_{_\wedge_} ,x.2]));
axiom
hat(A:E,B:E):E == (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
axiom
test(hat(P, Q)=-hat(Q,P))
axiom
Compiling function hat with type (Expression(
SparseMultivariatePolynomial(Fraction(Integer),Symbol)),
Expression(SparseMultivariatePolynomial(Fraction(Integer),Symbol)
)) -> Expression(SparseMultivariatePolynomial(Fraction(Integer),
Symbol))
Type: Boolean
axiom
simplifyHat:=rule
dot(P, Q)^2-dot(P,P)*dot(Q,Q) == hat(P,Q)^2
-dot(P,Q)^2+dot(P,P)*dot(Q,Q) == -hat(P,Q)^2
dot(Q,R)*dot(P,R)-dot(R,R)*dot(P,Q) == dot(hat(R,Q),hat(R,P))
Type: Ruleset(Integer,SparseMultivariatePolynomial
?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
- Isometry from Bivector
In 1937 Elie Cartan observed that the Lie algebra of the isometry group
, is given by bivectors .
axiom
eq33 := matrix [[-dot(P,P), dot(Q,P)+c], _
[-dot(P,Q)+c, dot(Q,Q) ]]
Type: Matrix(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
eq35 := inverse(eq33)
Type: Union(Matrix(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol))),...)
axiom
map(x+->simplifyHat(x),eq35)
Type: Matrix(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
- Isometry from Trivector
Consider the following endomorphism,
axiom
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) ]]
Type: Matrix(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
eq47a := adjoint(eq44);
Type: Record(adjMat: Matrix(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol))),detMat: Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
)set output tex off
axiom
)set output algebra on
eq47a.adjMat::List List E
(17)
[
2 2
[Q{\cdot}QR{\cdot}R - Q{\cdot}R + c ,
(- P{\cdot}Q + a)R{\cdot}R + (P{\cdot}R - b)Q{\cdot}R + cP{\cdot}R -
b c,
(P{\cdot}Q - a)Q{\cdot}R + (- P{\cdot}R + b)Q{\cdot}Q - cP{\cdot}Q +
a c]
,
[(- P{\cdot}Q - a)R{\cdot}R + (P{\cdot}R + b)Q{\cdot}R - cP{\cdot}R -
b c,
2 2
P{\cdot}PR{\cdot}R - P{\cdot}R + b ,
- P{\cdot}PQ{\cdot}R + (P{\cdot}Q + a)P{\cdot}R - bP{\cdot}Q
+
cP{\cdot}P - a b
]
,
[(P{\cdot}Q + a)Q{\cdot}R + (- P{\cdot}R - b)Q{\cdot}Q + cP{\cdot}Q +
a c,
- P{\cdot}PQ{\cdot}R + (P{\cdot}Q - a)P{\cdot}R + bP{\cdot}Q
+
- cP{\cdot}P - a b
,
2 2
P{\cdot}PQ{\cdot}Q - P{\cdot}Q + a ]
]
Type: List(List(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol))))
axiom
)set output tex on
axiom
)set output algebra off
eq47a.detMat
Type: Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol))
Simplifications
axiom
eq45 := a*R-b*Q+c*P = v
Type: Equation(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
eq45a := rule
a*dot(R,R)-b*dot(R,Q)+c*dot(R,P) == dot(R,v)
a*dot(Q,R)-b*dot(Q,Q)+c*dot(Q,P) == dot(Q,v)
a*dot(P,R)-b*dot(P,Q)+c*dot(P,P) == dot(P,v)
Type: Ruleset(Integer,SparseMultivariatePolynomial
?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
eq47b := map(x+->eq45a simplifyHat x,eq47a.adjMat)
Type: Matrix(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
map(x+->x^2,eq45)
Type: Equation(Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
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(R,P) - 2*a*b*dot(R,Q) == v^2
Type: RewriteRule
?(Integer,SparseMultivariatePolynomial
?(Fraction(Integer),Symbol),Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol)))
axiom
eq47d(eq47a.detMat)
Type: Expression(SparseMultivariatePolynomial
?(Fraction(Integer),Symbol))