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

# Edit detail for SandBoxGrassmannIsometry revision 7 of 7

 1 2 3 4 5 6 7 Editor: page Time: 2009/09/11 19:52:04 GMT-7 Note: bug!

## 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);
>> System error:
Control stack exhausted (no more space for function call frames).
This is probably due to heavily nested or infinitely recursive function
calls, or a tail call that SBCL cannot or has not optimized away.
PROCEED WITH CAUTION.

fricas
--)set output tex off
--)set output algebra on
There are no library operations named eq47a
Use HyperDoc Browse or issue
)what op eq47a
to learn if there is any operation containing " eq47a " in its
name.
Cannot find a definition or applicable library operation named eq47a
with argument type(s)
or "$" to specify which version of the function you need. Simplifications fricas eq45 := a*R-b*Q+c*P = v  (12) 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)  (13) 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 x:=(eq47a.adjMat)(i,j); outputAsTex ["x",i,j,x] y:=combine(x); outputAsTex ["y",i,j,y] z:=eq45a(y) outputAsTex ["z",i,j,z] There are no library operations named eq47a Use HyperDoc Browse or issue )what op eq47a to learn if there is any operation containing " eq47a " in its name. Cannot find a definition or applicable library operation named eq47a with argument type(s) Variable(adjMat) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.
or "\$" to specify which version of the function you need.