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

Obs(4) is a 16 dimensional Frobenius Algrebra

fricas
)set output abbreviate on
V := OrderedVariableList [p,q,r,s]
 (1)
Type: TYPE
fricas
M := FreeMonoid V
 (2)
Type: TYPE
fricas
gens:List M := enumerate()$V  (3) Type: LIST(FMONOID(OVAR([p,q,r,s]))) fricas divisible := Record(lm: M,rm: M)  (4) Type: TYPE fricas leftDiv(k:Union(divisible,"failed")):M == (k::divisible).lm Function declaration leftDiv : Union(Record(lm: FMONOID(OVAR([p,q,r, s])),rm: FMONOID(OVAR([p,q,r,s]))),"failed") -> FMONOID(OVAR([p,q ,r,s])) has been added to workspace. Type: VOID fricas rightDiv(k:Union(divisible,"failed")):M == (k::divisible).rm Function declaration rightDiv : Union(Record(lm: FMONOID(OVAR([p,q,r ,s])),rm: FMONOID(OVAR([p,q,r,s]))),"failed") -> FMONOID(OVAR([p, q,r,s])) has been added to workspace. Type: VOID fricas K := FRAC POLY INT  (5) Type: TYPE fricas MK := FreeModule(K,M)  (6) Type: TYPE fricas coeff(x:MK):K == leadingCoefficient(x) Function declaration coeff : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r, s]))) -> FRAC(POLY(INT)) has been added to workspace. Type: VOID fricas monomial(x:MK):M == leadingMonomial(x) Function declaration monomial : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q ,r,s]))) -> FMONOID(OVAR([p,q,r,s])) has been added to workspace. Type: VOID fricas m(x:M):K == subscript('m,[retract(x)::Symbol]) Function declaration m : FMONOID(OVAR([p,q,r,s])) -> FRAC(POLY(INT)) has been added to workspace. Type: VOID fricas γ(x:M,y:M):K == subscript('γ,[concat(string retract x, string retract y)::Symbol]) Function declaration γ : (FMONOID(OVAR([p,q,r,s])), FMONOID(OVAR([p, q,r,s]))) -> FRAC(POLY(INT)) has been added to workspace. Type: VOID Basis fricas basis := concat(gens,concat [[j*i for i in gens | i~=j] for j in gens])  (7) Type: LIST(FMONOID(OVAR([p,q,r,s]))) Idempotent fricas rule1(ij:MK):MK == for k in gens repeat kk := divide(monomial(ij),k*k) if kk case divisible then ij:=(coeff(ij) * m(k)*γ(k,k)) * (leftDiv(kk) * k * rightDiv(kk)) return(ij) Function declaration rule1 : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r, s]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) has been added to workspace. Type: VOID Reduction fricas rule2(ij:MK):MK == for i in gens repeat for j in gens | j ~= i repeat for k in gens | k ~= j repeat ijk:=divide(leadingMonomial(ij),i*j*k) if ijk case divisible then --if i=k then -- ij := (coeff(ij)*m(i)*m(j)*γ(i,j)*γ(j,i) ) * _ -- (leftDiv(ijk)*i*rightDiv(ijk)) --else ij := (coeff(ij)*m(j)*γ(i,j)*γ(j,k) / γ(i,k) ) * _ (leftDiv(ijk)*i*k*rightDiv(ijk)) return(ij) Function declaration rule2 : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r, s]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) has been added to workspace. Type: VOID Modulo fixed point of applied rules fricas mod(ij:MK):MK == ijFix:MK := 1 while ijFix~=ij repeat ijFix := ij ij := rule1(ij) ij := rule2(ij) return(ij) Function declaration mod : FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s] ))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) has been added to workspace. Type: VOID Matrix Multiplication is monoidal concatenation modulo the fixed point fricas MT := [[mod(i*j) for j in basis] for i in basis] There are 1 exposed and 3 unexposed library operations named leadingMonomial having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op leadingMonomial 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 leadingMonomial with argument type(s) FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) 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.
fricas
Compiling function monomial with type FM(FRAC(POLY(INT)),FMONOID(
OVAR([p,q,r,s]))) -> FMONOID(OVAR([p,q,r,s]))
fricas
Compiling function coeff with type FM(FRAC(POLY(INT)),FMONOID(OVAR([
p,q,r,s]))) -> FRAC(POLY(INT))
fricas
Compiling function m with type FMONOID(OVAR([p,q,r,s])) -> FRAC(POLY
(INT))
fricas
Compiling function γ with type (FMONOID(OVAR([p,q,r,s])), FMONOID(
OVAR([p,q,r,s]))) -> FRAC(POLY(INT))
fricas
Compiling function leftDiv with type Union(Record(lm: FMONOID(OVAR([
p,q,r,s])),rm: FMONOID(OVAR([p,q,r,s]))),"failed") -> FMONOID(
OVAR([p,q,r,s]))
fricas
Compiling function rightDiv with type Union(Record(lm: FMONOID(OVAR(
[p,q,r,s])),rm: FMONOID(OVAR([p,q,r,s]))),"failed") -> FMONOID(
OVAR([p,q,r,s]))
fricas
Compiling function rule1 with type FM(FRAC(POLY(INT)),FMONOID(OVAR([
p,q,r,s]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s])))
There are 2 exposed and 2 unexposed library operations named divide
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op divide
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
divide with argument type(s)
FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s])))
FMONOID(OVAR([p,q,r,s]))
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. fricas Compiling function rule2 with type FM(FRAC(POLY(INT)),FMONOID(OVAR([ p,q,r,s]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) fricas Compiling function mod with type FM(FRAC(POLY(INT)),FMONOID(OVAR([p, q,r,s]))) -> FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) There are 1 exposed and 3 unexposed library operations named leadingMonomial having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op leadingMonomial 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 leadingMonomial with argument type(s) FM(FRAC(POLY(INT)),FMONOID(OVAR([p,q,r,s]))) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

Structure Constants

fricas
R:=FRAC DMP(concat [[m(i) for i in gens],concat [[γ(j,i) for i in gens] for j in gens]], INT)
 (8)
Type: TYPE
fricas
mat3(y:M):List List R == map(z+->map(x+->coefficient(x,y)::FRAC POLY INT,z),MT)
Function declaration mat3 : FMONOID(OVAR([p,q,r,s])) -> LIST(LIST(
FRAC(DMP([m[p],m[q],m[r],m[s],γ[pp],γ[pq],γ[pr],γ[ps],γ[qp],γ[qq]
,γ[qr],γ[qs],γ[rp],γ[rq],γ[rr],γ[rs],γ[sp],γ[sq],γ[sr],γ[ss]],INT
)))) has been added to workspace.
Type: VOID
fricas
ss:=map(mat3, basis)
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 66 exposed and 13 unexposed library operations named map
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op map
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are 4 exposed and 6 unexposed library operations named
coefficient having 2 argument(s) but none was determined to be
applicable. Use HyperDoc Browse, or issue
)display op coefficient
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
There are no library operations named *01000m
Use HyperDoc Browse or issue
)what op *01000m
to learn if there is any operation containing " *01000m " in its
name.
There are no library operations named *01000m
Use HyperDoc Browse or issue
)what op *01000m
to learn if there is any operation containing " *01000m " in its
name.
There are no library operations named *01000m
Use HyperDoc Browse or issue
)what op *01000m
to learn if there is any operation containing " *01000m " in its
name.
There are 66 exposed and 13 unexposed library operations named map
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op map
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 map
with argument type(s)
ANON
VARIABLE(MT)
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. fricas Compiling function mat3 with type FMONOID(OVAR([p,q,r,s])) -> LIST( LIST(FRAC(DMP([m[p],m[q],m[r],m[s],γ[pp],γ[pq],γ[pr],γ[ps],γ[qp], γ[qq],γ[qr],γ[qs],γ[rp],γ[rq],γ[rr],γ[rs],γ[sp],γ[sq],γ[sr],γ[ss] ],INT)))) There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are 66 exposed and 13 unexposed library operations named map having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op map 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. There are 4 exposed and 6 unexposed library operations named coefficient having 2 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op coefficient 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. There are no library operations named *01000m Use HyperDoc Browse or issue )what op *01000m to learn if there is any operation containing " *01000m " in its name. Cannot find a definition or applicable library operation named *01000m with argument type(s) VARIABLE(p) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

Algebra

fricas
cats(m:M):Symbol==concat(map(x+->string(x.gen::Symbol),factors m))::Symbol
Function declaration cats : FMONOID(OVAR([p,q,r,s])) -> SYMBOL has
been added to workspace.
Type: VOID
fricas
A:=AlgebraGivenByStructuralConstants(R,#(basis)::PI,map(cats,basis),ss::Vector(Matrix R))
fricas
Compiling function cats with type FMONOID(OVAR([p,q,r,s])) -> SYMBOL
Cannot convert the value from type VARIABLE(ss) to VECTOR(MATRIX(
FRAC(DMP([m[p],m[q],m[r],m[s],γ[pp],γ[pq],γ[pr],γ[ps],γ[qp],γ[qq]
,γ[qr],γ[qs],γ[rp],γ[rq],γ[rr],γ[rs],γ[sp],γ[sq],γ[sr],γ[ss]],INT
)))) .

Check Multiplication

fricas
AB := entries basis()$A A is not a valid type. Trace fricas [rightTrace(i)$A for i in AB]
FriCAS cannot iterate with i over your form now. Perhaps you should
try using a conversion to make sure your form is a list or
stream, for example.

Center

fricas
C:=basisOfCenter()$AlgebraPackage(R,A); # C A is not a valid type. Unit fricas rightTrace(c) There are 1 exposed and 0 unexposed library operations named rightTrace having 1 argument(s) but none was determined to be applicable. Use HyperDoc Browse, or issue )display op rightTrace 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 rightTrace with argument type(s) VARIABLE(c) Perhaps you should use "@" to indicate the required return type, or "$" to specify which version of the function you need.

fricas
test(n=unit()\$A)
A is not a valid type.

Antisymmetric γ

fricas
eqAnti:List Equation EXPR INT := concat [[(i>j => γ(i,j)=γ(i,j);i=j =>γ(i,j)=0;γ(i,j)=-γ(j,i)) for j in gens] for i in gens]
 (9)
Type: LIST(EQ(EXPR(INT)))
fricas
anti(x:R):R == subst(x::EXPR INT, eqAnti)::FRAC POLY INT
Function declaration anti : FRAC(DMP([m[p],m[q],m[r],m[s],γ[pp],γ[pq
],γ[pr],γ[ps],γ[qp],γ[qq],γ[qr],γ[qs],γ[rp],γ[rq],γ[rr],γ[rs],γ[
sp],γ[sq],γ[sr],γ[ss]],INT)) -> FRAC(DMP([m[p],m[q],m[r],m[s],γ[
pp],γ[pq],γ[pr],γ[ps],γ[qp],γ[qq],γ[qr],γ[qs],γ[rp],γ[rq],γ[rr],γ
[rs],γ[sp],γ[sq],γ[sr],γ[ss]],INT)) has been added to workspace.
Type: VOID
fricas
(anti(f)*map(anti ,coordinates(n))::A)::OutputForm / anti(f)::OutputForm
fricas
Compiling function anti with type FRAC(DMP([m[p],m[q],m[r],m[s],γ[pp
],γ[pq],γ[pr],γ[ps],γ[qp],γ[qq],γ[qr],γ[qs],γ[rp],γ[rq],γ[rr],γ[
rs],γ[sp],γ[sq],γ[sr],γ[ss]],INT)) -> FRAC(DMP([m[p],m[q],m[r],m[
s],γ[pp],γ[pq],γ[pr],γ[ps],γ[qp],γ[qq],γ[qr],γ[qs],γ[rp],γ[rq],γ[
rr],γ[rs],γ[sp],γ[sq],γ[sr],γ[ss]],INT))
Conversion failed in the compiled user function anti .
Cannot convert the value from type SYMBOL to FRAC(DMP([m[p],m[q],m[r
],m[s],γ[pp],γ[pq],γ[pr],γ[ps],γ[qp],γ[qq],γ[qr],γ[qs],γ[rp],γ[rq
],γ[rr],γ[rs],γ[sp],γ[sq],γ[sr],γ[ss]],INT)) .

Scalar Product

fricas
S := matrix [[trace(x*y) for y in AB] for x in AB]
FriCAS cannot iterate with x over your form now. Perhaps you should
try using a conversion to make sure your form is a list or
stream, for example.

 Subject:   Be Bold !! ( 15 subscribers )