Refs:
We need the Axiom LinearOperator library.
fricas
(1) -> )library CARTEN ARITY CMONAL CPROP CLOP CALEY
CartesianTensor is now explicitly exposed in frame initial
CartesianTensor will be automatically loaded when needed from
/var/aw/var/LatexWiki/CARTEN.NRLIB/CARTEN
Arity is now explicitly exposed in frame initial
Arity will be automatically loaded when needed from
/var/aw/var/LatexWiki/ARITY.NRLIB/ARITY
ClosedMonoidal is now explicitly exposed in frame initial
ClosedMonoidal will be automatically loaded when needed from
/var/aw/var/LatexWiki/CMONAL.NRLIB/CMONAL
ClosedProp is now explicitly exposed in frame initial
ClosedProp will be automatically loaded when needed from
/var/aw/var/LatexWiki/CPROP.NRLIB/CPROP
ClosedLinearOperator is now explicitly exposed in frame initial
ClosedLinearOperator will be automatically loaded when needed from
/var/aw/var/LatexWiki/CLOP.NRLIB/CLOP
CaleyDickson is now explicitly exposed in frame initial
CaleyDickson will be automatically loaded when needed from
/var/aw/var/LatexWiki/CALEY.NRLIB/CALEY
Use the following macros for convenient notation
fricas
-- summation
macro Σ(x,i,n)==reduce(+,[x for i in n])
Type: Void
fricas
-- list
macro Ξ(f,i,n)==[f for i in n]
Type: Void
fricas
-- subscript and superscripts
macro sb == subscript
Type: Void
fricas
macro sp == superscript
Type: Void
𝐋 is the domain of 2-dimensional linear operators over the rational functions ℚ (Expression Integer), i.e. ratio of polynomials with integer coefficients.
fricas
dim:=2
fricas
macro ℒ == List
Type: Void
fricas
macro ℂ == CaleyDickson
Type: Void
fricas
macro ℚ == Expression Integer
Type: Void
fricas
𝐋 := ClosedLinearOperator(OVAR ['1,'2], ℚ)
Type: Type
fricas
𝐞:ℒ 𝐋 := basisOut()
fricas
𝐝:ℒ 𝐋 := basisIn()
fricas
I:𝐋:=[1] -- identity for composition
fricas
X:𝐋:=[2,1] -- twist
fricas
V:𝐋:=ev(1) -- evaluation
fricas
Λ:𝐋:=co(1) -- co-evaluation
fricas
!:𝐋:=[-1] -- color change 1 -> 1*
fricas
$:𝐋:=dagger ! -- 1* -> 1
fricas
J:𝐋:=$/!
fricas
test(!/$=I)
Type: Boolean
fricas
equate(eq)==map((x,y)+->(x=y),ravel lhs eq, ravel rhs eq);
Type: Void
We want to be able to implement linear operators with two
"colors" like the following:
An example starting with Complex Algebra
The basis consists of the real and imaginary units. We use complex multiplication to form the "multiplication table" as a matrix. Then the structure constants can be obtained by dividing each matrix entry by the list of basis vectors.
Split-complex can be specified by Caley-Dickson parameter (q0 = -1)
fricas
--q:=1 -- split-complex
q:=sp('i,[2])
Type: Symbol
fricas
QQ := ℂ(ℚ,'i,q);
Type: Type
Basis: Each B.i is a complex number
fricas
B:ℒ QQ := map(x +-> hyper x,1$SQMATRIX(dim,ℚ)::ℒ ℒ ℚ)
There are 1 exposed and 0 unexposed library operations named hyper
having 1 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op hyper
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named hyper
with argument type(s)
List(Expression(Integer))
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
FriCAS will attempt to step through and interpret the code.
>> System error:
#<SB-SYS:FD-STREAM for "file /var/aw/var/LatexWiki/CALEY.NRLIB/CALEY.fasl" {100289FA53}>
is a fasl file compiled with SBCL 1.1.1, and can't be loaded into SBCL
2.2.9.debian.
Multiplication of arbitrary quaternions and
fricas
a:=Σ(sb('a,[i])*𝐞.i, i,1..dim)
fricas
b:=Σ(sb('b,[i])*𝐞.i, i,1..dim)
fricas
(a,b)/Y!
There are 15 exposed and 15 unexposed library operations named /
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op /
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named /
with argument type(s)
Tuple(ClosedLinearOperator(OrderedVariableList([1,2]),Expression(Integer)))
Variable(Y!)
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
Multiplication is Associative
fricas
test(
( Y! J ) / _
( Y ) = _
( I Y ) / _
( Y! ) )
There are no library operations named Y!
Use HyperDoc Browse or issue
)what op Y!
to learn if there is any operation containing " Y! " in its name.
Cannot find a definition or applicable library operation named Y!
with argument type(s)
ClosedLinearOperator(OrderedVariableList([1,2]),Expression(Integer))
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
A scalar product is denoted by the (2,0)-tensor
fricas
U:=Σ(Σ(script('u,[[],[i,j]])*𝐝.i*($/𝐝.j), i,1..dim), j,1..dim)
fricas
arity U
Definition 1
We say that the scalar product is associative if the tensor
equation holds:
Y = Y
U U
In other words, if the (3,0)-tensor:
(three-point function) is zero.
How should we color this?