Skip to content

jonah-mendel/complementary_triples_code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Complementary Triples Code

This repository contains the Magma code used to compute and verify the complementary triples appearing in the paper.

The computations are for totally definite quaternion algebras over class-number-one number fields, using the class-one order data defined by Kirschmer's smalltypenumber.m file. The main objects are:

  • a quaternion order O;
  • a finite set T of finite primes of the base field;
  • the finite group Gamma_T generated by the relevant unit and normalizer data;
  • a finite quotient G[C] = (O / C O)^* / (R / C)^*;
  • complementary triples (T, C, H), where the image of Gamma_T in G[C] has a complement H;
  • torsion obstruction sets used in the paper's classification arguments;
  • presentations of selected S-arithmetic groups.

Requirements

  • Magma, with support for quaternion algebras and number fields.

Run Magma commands from the repository root:

magma
load "load.m";

Magma resolves load paths relative to the current working directory, so the working directory matters.

Data Source

The table OneClassGenera is loaded from data/smalltypenumber.m. This data file is not distributed in the repository. Download it from Markus Kirschmer's class-one order table page:

https://www.math.uni-bielefeld.de/~mkirschm/orders/

After downloading and unpacking the archive, place the file at:

data/smalltypenumber.m

The rows of OneClassGenera follow Kirschmer's documented table format. The order type convention is:

4 = maximal
3 = hereditary non-maximal
2 = Eichler non-hereditary
1 = Bass non-Eichler
0 = Gorenstein non-Bass

Only class-number-one base fields are supported.

Layout

  • load.m: loads the package.
  • data/: class-one order table data.
  • src/order_data.m: constructs order records from OneClassGenera or from explicit Magma orders.
  • src/projective_unit_group.m: constructs finite projective unit groups, normalizer images, and complement classes.
  • src/arithmetic_utils.m: shared ideal, prime, and aggregation helpers.
  • src/complementary_ideals.m: complementary-pair and complementary-triple algorithms.
  • src/local_norm_pipeline.m: trace/norm obstruction summaries.
  • src/lifted_torsion_obstruction.m: lifted torsion obstruction summaries at the modulus used in the paper's torsion-obstruction table.
  • src/presentation_pipeline.m: presentation construction for selected S-arithmetic groups.
  • src/presentation_sigma_relations.m: relation helpers for presentations.
  • src/batch_exports.m: CSV writers for long scans.
  • scripts/: reproducible scan commands.
  • tests/: verification scripts for computational claims in the paper.
  • examples/: worked examples that print results to the terminal.
  • outputs/: CSV outputs from the computations used in the paper.
  • docs/architecture.md: short description of the package layers.

Basic Interactive Use

Build the order attached to an entry of OneClassGenera:

load "load.m";

order_data := order_data_from_index(1);

Compute complementary data for an ideal C and a finite set T:

R := order_data`integer_ring;
C := ideal<R | 2>;

result := complementary_pairs_at_ideal(
    order_data,
    C :
    T := [],
    Print := 1
);

Scan for minimal complementary triples up to a prime norm bound:

scan := scan_order_for_complementary_triples(
    order_data,
    5 :
    Print := 1
);

triples := complementary_order_triples(scan);

For a fixed prime-power search:

P := ideal<order_data`integer_ring | 2>;

prime_power_scan := scan_prime_power_complementary_triples(
    order_data,
    P,
    2 :
    T := [],
    Print := 1
);

Verification Tests

These scripts are the main commands for readers who want to verify the computational claims used in the paper. They raise a Magma error if the asserted condition fails.

magma tests/verify_unit_representative_norms.m
magma tests/verify_single_T_trivial_gamma_split_injectivity.m
magma tests/verify_distinct_ramified_nontrivial_case.m
magma tests/verify_single_T_C2_split_prime_complements.m
magma tests/verify_gamma_emptyset_C2_split_injectivity.m
magma tests/verify_large_norm_injectivity.m
magma tests/verify_lifted_torsion_obstruction.m
magma tests/verify_hurwitz_lipschitz_computations.m

The verification scripts check the following assertions used in the paper:

  • tests/verify_unit_representative_norms.m: checks that the representatives of Gamma_emptyset have reduced norm 1.
  • tests/verify_single_T_trivial_gamma_split_injectivity.m: checks the split-prime injectivity assertion used for the cyclic-unit trivial complementary triples.
  • tests/verify_distinct_ramified_nontrivial_case.m: checks the distinct ramified-prime case for cyclic-unit complementary triples.
  • tests/verify_single_T_C2_split_prime_complements.m: checks the split-prime complement criterion used when Gamma_T is cyclic of order 2.
  • tests/verify_gamma_emptyset_C2_split_injectivity.m: checks the split-prime injectivity assertion used when Gamma_emptyset is cyclic of order 2.
  • tests/verify_large_norm_injectivity.m: checks the large-norm injectivity assertion used in the classification of minimal complementary triples.
  • tests/verify_lifted_torsion_obstruction.m: checks the lifted torsion-obstruction computations recorded in the appendix table.
  • tests/verify_hurwitz_lipschitz_computations.m: checks the finite quotient, complement, and torsion-obstruction computations for the Hurwitz and Lipschitz orders.

The smoke test tests/smoke.m checks that the package loads and that a short complementary-triple workflow runs.

Regenerating Paper Data

The appendix complementary-triple CSVs are generated by:

magma scripts/batch_nontrivial_maximal_complementary_triples.m

The scan follows the convention used in the paper for non-trivial minimal complementary triples. It tests all ramified primes and all split primes P with Norm(P) <= #Gamma_T + 1. When the paper requires a lifted torsion obstruction for a complementary triple, the scan records that data in the CSV.

The torsion obstruction attached to the discriminant ideal can be regenerated with:

magma scripts/batch_discriminant_obstructions.m

The lifted torsion obstruction data used by the appendix table can be recomputed from the complementary-triple output file outputs/nontrivial_complementary_triples.csv with:

magma scripts/recompute_lifted_obstructions.m

The repository includes the CSV outputs used to produce the appendix tables. The main file, outputs/nontrivial_complementary_triples.csv, records the non-trivial minimal complementary triples found by the scan, together with the order, field, algebra, set T, complementary ideal, complement counts, and torsion-obstruction data used in the paper. These CSVs are included so that a reader can inspect the computed data directly and rerun the table and verification scripts without first repeating the longest searches.

The following scripts rerun the longer verification scans for the norm-one unit representative claim and the large-norm injectivity claim. They are separated from the quicker examples because they range over many class-one orders.

magma scripts/batch_unit_representative_norms.m
magma scripts/batch_large_norm_injectivity_exceptions.m

Presentation Examples

The displayed presentation examples in the paper can be recomputed with:

magma examples/example_presentation_minus_2_minus_5_S23.m
magma examples/example_presentation_qsqrt2_d18_p2_S7split.m

The presentation example scripts construct the same complementary triples and the same sets S used in the paper's examples, then print the resulting presentation, generator representatives, and relators. The labels a_i and b_j may differ from the displayed examples by a relabeling of generators.

License

This code is released under the MIT License. See LICENSE.

AI Acknowledgement

AI-assisted tools, including OpenAI Codex, were used during the development and revision of this codebase. The mathematical content, final code choices, verification scripts, and computational claims are the responsibility of the author.

About

Computes complementary triples of definite quaternion orders

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors