axiom
p:Complex Fraction Polynomial Integer:=complex(ℜp,𝔍p)
Type: Complex(Fraction(Polynomial(Integer)))
axiom
q:Complex Fraction Polynomial Integer:=complex(ℜq,𝔍q)
Type: Complex(Fraction(Polynomial(Integer)))
axiom
r:Complex Fraction Polynomial Integer:=complex(ℜr,𝔍r)
Type: Complex(Fraction(Polynomial(Integer)))
axiom
t:Complex Fraction Polynomial Integer:=complex(ℜt,0)
Type: Complex(Fraction(Polynomial(Integer)))
axiom
ρ:=matrix [[t/2+p,q],[r,t/2-p]]
Type: Matrix(Complex(Fraction(Polynomial(Integer))))
axiom
trace ρ
Type: Complex(Fraction(Polynomial(Integer)))
axiom
d:=determinant ρ
Type: Complex(Fraction(Polynomial(Integer)))
axiom
s0:=solve(imag d,ℜr)
Type: List(Equation(Fraction(Polynomial(Integer))))
axiom
eval(trace(ρ*ρ),s0)
Type: Fraction(Polynomial(Complex(Integer)))
axiom
test(p^2+r*q=(1/4)*t^2-d)
Type: Boolean
axiom
h:Matrix Complex Polynomial Integer:=matrix [[a,complex(b,c)],[complex(b,-c),e]]
Type: Matrix(Complex(Polynomial(Integer)))
axiom
htranspose(h)==map(x+->conjugate(x),transpose h)
Type: Void
axiom
test(h = htranspose h)
axiom
Compiling function htranspose with type Matrix(Complex(Polynomial(
Integer))) -> Matrix(Complex(Polynomial(Integer)))
Type: Boolean
axiom
H:=htranspose(ρ)*h-h*ρ
axiom
Compiling function htranspose with type Matrix(Complex(Fraction(
Polynomial(Integer)))) -> Matrix(Complex(Fraction(Polynomial(
Integer))))
Type: Matrix(Complex(Fraction(Polynomial(Integer))))
axiom
Hlist:=concat(H::List List ?)
Type: List(Complex(Fraction(Polynomial(Integer))))
axiom
Hreal:=removeDuplicates(select(x+->(x~=0),concat(map(x+->real x, Hlist),map(x+->imag x, Hlist))))
Type: List(Fraction(Polynomial(Integer)))
axiom
)expose MCALCFN
MultiVariableCalculusFunctions is now explicitly exposed in frame
initial
H1:=jacobian(Hreal,[a,b,c,e]::List Symbol)
Type: Matrix(Fraction(Polynomial(Integer)))
axiom
s1:=solve(determinant subMatrix(H1,2,5,1,4),ℜr)
Type: List(Equation(Fraction(Polynomial(Integer))))
axiom
H2:=map(x+->eval(x,s1),H1)
Type: Matrix(Fraction(Polynomial(Integer)))
axiom
N:=nullSpace(H2)
Type: List(Vector(Fraction(Polynomial(Integer))))
axiom
H2*(c*N(1)+e*N(2))
Type: Vector(Fraction(Polynomial(Integer)))
axiom
s2:=map((x,y)+->x=y,[a,b,c,e],c*N.1+e*N.2)
Type: List(Equation(Fraction(Polynomial(Integer))))
axiom
h1:=map(x+->eval(x,s2),h)
Type: Matrix(Fraction(Polynomial(Complex(Integer))))
axiom
map(x+->eval(x,s1),htranspose(ρ)*h1-h1*ρ)
Type: Matrix(Fraction(Polynomial(Complex(Integer))))