Code accompaining the paper "The principal ideal problem for endomorphism rings of superspecial abelian varieties". This code contains some function for solving the principal ideal problem and the kernel to matrix problem in dimension 2. We refer to the paper for a more detailed explanation of the functions.
pip.py: main algorithmsideals.py: ideals helpersmisc.py: generic helpersbench.py: test functionsqmat_iso.pyandqmat_iso_q.py: isomorphisms between quaternion orders modulo n and 2x2 matrices
The file bench.py contains tests and examples on how to use the code.
test_square(): tests the functionfill_squareon radom ideals, both inO0and a genericO; checks that the matrix output has the correct norm and that the first column genertes the input idealtest_ker(): generates a pair of points(P, Q)ofl-torsion and checks that the functionkernel_to_matrixreturns a matrix of normlwith(P, Q)as a kernel
To run the code simply run sage bench.py or sage --python -O bench.py to
skip assertions.