LICENSE
README.md
pyproject.toml
src/opengalois/__init__.py
src/opengalois/__main__.py
src/opengalois/api.py
src/opengalois/certificate.py
src/opengalois/cli.py
src/opengalois/explain.py
src/opengalois/models.py
src/opengalois/py.typed
src/opengalois/verify.py
src/opengalois.egg-info/PKG-INFO
src/opengalois.egg-info/SOURCES.txt
src/opengalois.egg-info/dependency_links.txt
src/opengalois.egg-info/entry_points.txt
src/opengalois.egg-info/requires.txt
src/opengalois.egg-info/top_level.txt
src/opengalois/algorithms/__init__.py
src/opengalois/algorithms/cuerpos_finitos.py
src/opengalois/algorithms/dummit_quintic_tables.py
src/opengalois/algorithms/factorization.py
src/opengalois/algorithms/factorization_fpx.py
src/opengalois/algorithms/factorization_leg.py
src/opengalois/algorithms/intfactor.py
src/opengalois/codec/__init__.py
src/opengalois/codec/rationals.py
src/opengalois/engine/__init__.py
src/opengalois/engine/context.py
src/opengalois/engine/engine.py
src/opengalois/engine/objects.py
src/opengalois/engine/registry.py
src/opengalois/engine/procedures/procedure.py
src/opengalois/engine/procedures/reducible.py
src/opengalois/engine/procedures/irreducible/_radical_utils.py
src/opengalois/engine/procedures/irreducible/deg1.py
src/opengalois/engine/procedures/irreducible/deg2.py
src/opengalois/engine/procedures/irreducible/deg3.py
src/opengalois/engine/procedures/irreducible/deg4.py
src/opengalois/engine/procedures/irreducible/deg5.py
src/opengalois/explain/__init__.py
src/opengalois/explain/api.py
src/opengalois/explain/context.py
src/opengalois/explain/errors.py
src/opengalois/explain/graph.py
src/opengalois/explain/math_render.py
src/opengalois/explain/pdf.py
src/opengalois/explain/proof_model.py
src/opengalois/explain/renderers/__init__.py
src/opengalois/explain/renderers/latex.py
src/opengalois/explain/renderers/markdown.py
src/opengalois/explain/templates/__init__.py
src/opengalois/explain/templates/registry.py
src/opengalois/explain/templates/le5_core_1/__init__.py
src/opengalois/explain/templates/le5_core_1/_helpers.py
src/opengalois/explain/templates/le5_core_1/basic.py
src/opengalois/explain/templates/le5_core_1/discriminant.py
src/opengalois/explain/templates/le5_core_1/galois.py
src/opengalois/explain/templates/le5_core_1/radicals.py
src/opengalois/explain/templates/le5_core_1/statements.py
src/opengalois/nodes/__init__.py
src/opengalois/nodes/discriminant.py
src/opengalois/nodes/kappe_warren.py
src/opengalois/nodes/normalize.py
src/opengalois/nodes/reducibility.py
src/opengalois/nodes/resolvent.py
src/opengalois/nodes/square.py
src/opengalois/polyops/__init__.py
src/opengalois/polyops/asc_fpx.py
src/opengalois/polyops/desc_qx.py
src/opengalois/polyops/desc_zx.py
src/opengalois/radicals/__init__.py
src/opengalois/radicals/ast.py
src/opengalois/radicals/canon.py
src/opengalois/radicals/cli_format.py
src/opengalois/radicals/codec.py
src/opengalois/radicals/parse.py
src/opengalois/radicals/render.py
src/opengalois/radicals/schemes/__init__.py
src/opengalois/radicals/schemes/deg1_trivial.py
src/opengalois/radicals/schemes/deg2_quadratic_formula.py
src/opengalois/radicals/schemes/deg3_cardano_depressed_monic.py
src/opengalois/radicals/schemes/deg4_ferrari_depressed_monic.py
src/opengalois/radicals/schemes/deg5_mcclintock_depressed_monic.py
src/opengalois/radicals/schemes/lift_depressed_monic.py
src/opengalois/rulesets/__init__.py
src/opengalois/rulesets/le5_core_1.py
src/opengalois/rulesets/registry.py
src/opengalois/rulesets/types.py
src/opengalois/schemas/certificate/3.0.0.json
src/opengalois/schemas/certificate/3.1.0.json
tests/test_api_coeff_parsing.py
tests/test_cardano_v2_fixtures.py
tests/test_cli_analyze.py
tests/test_cli_layout.py
tests/test_cli_radical_roots_display.py
tests/test_cli_verify.py
tests/test_deg4_ferrari_v2_engine_smoke.py
tests/test_deg4_ferrari_v2_fixtures.py
tests/test_deg4_pair_sums_kappe_warren_formula.py
tests/test_deg4_pair_sums_resolvent_equivalence.py
tests/test_deg4_pair_sums_v2_pipeline.py
tests/test_deg4_pair_sums_v2_regression_equivalence.py
tests/test_deg5_dummit_two_quadratics.py
tests/test_deg5_engine_normalization_and_regression.py
tests/test_deg5_pipeline.py
tests/test_desc_qx.py
tests/test_dummit_paper_examples.py
tests/test_dummit_quintic_tables.py
tests/test_engine_deg1_radical_roots.py
tests/test_engine_deg2_radical_roots.py
tests/test_engine_deg3_cardano_v2_emission.py
tests/test_engine_deg3_radical_roots.py
tests/test_engine_irreducible_deg3_pipeline.py
tests/test_engine_reducible_wiring.py
tests/test_explain_deg4_pair_sums_v2.py
tests/test_explain_irreducible_zassenhaus_trace.py
tests/test_explain_nonsquare_v2.py
tests/test_factorization_fpx_cantor_zassenhaus.py
tests/test_fixtures.py
tests/test_galois_group.py
tests/test_hensel_factorization.py
tests/test_hensel_factorization_refactor.py
tests/test_irreducible_QQ_to_depressed_monic_rule.py
tests/test_irreducible_deg4_pipeline_conrad.py
tests/test_jcs_vector.py
tests/test_kappe_warren_pair_sums_node.py
tests/test_mpoly_integration.py
tests/test_no_sympy_imports.py
tests/test_radical_expr_verify.py
tests/test_radical_roots_deg5_mcclintock_rule.py
tests/test_radical_roots_rules.py
tests/test_radicals_ast.py
tests/test_radicals_cli_format.py
tests/test_radicals_codec.py
tests/test_radicals_deg1_trivial_scheme.py
tests/test_radicals_deg2_quadratic_formula_scheme.py
tests/test_radicals_deg3_cardano_scheme.py
tests/test_radicals_render.py
tests/test_radicals_validation_guards.py
tests/test_reducibility_node_zassenhaus_trace.py
tests/test_reducible_procedure.py
tests/test_roundtrip_analyze_v3.py
tests/test_smoke.py
tests/test_solvable_by_radicals_rules.py
tests/test_square_node_nonsquare_v2.py
tests/test_v3_reducible_case_rules_22.py
tests/test_v3_reducible_case_rules_23.py
tests/test_v3_reducible_case_rules_batch1.py
tests/test_v3_rule_degree_QQ.py
tests/test_v3_rule_disc_QQ_compute_at_1.py
tests/test_v3_rule_disc_nonsquare_lift_at_1.py
tests/test_v3_rule_disc_square_lift_at_1.py
tests/test_v3_rule_factorization_monic.py
tests/test_v3_rule_galois_group_QQ_deg3_C3_at_1.py
tests/test_v3_rule_galois_group_QQ_deg3_S3_at_1.py
tests/test_v3_rule_galois_group_QQ_lift_depressed_monic.py
tests/test_v3_rule_galois_group_deg2_C2.py
tests/test_v3_rule_galois_group_deg4_c4.py
tests/test_v3_rule_galois_group_deg4_d4.py
tests/test_v3_rule_galois_group_deg4_pair_sums_v2.py
tests/test_v3_rule_galois_group_deg4_s4_a4.py
tests/test_v3_rule_galois_group_deg4_v4.py
tests/test_v3_rule_irreducible_QQ_dummit_resolvent.py
tests/test_v3_rule_irreducible_QQ_zassenhaus_trace.py
tests/test_v3_rule_irreducible_deg1_trivial.py
tests/test_v3_rule_irreducible_deg5_recompute.py
tests/test_v3_rule_is_square_QQ_lift_at_1.py
tests/test_v3_rule_nonsquare_QQ_isqrt_at_1.py
tests/test_v3_rule_nonsquare_QQ_isqrt_v2.py
tests/test_v3_rule_normalize_depressed_monic.py
tests/test_v3_rule_resolvent_QQ_compute_deg4_cubic_x1x2_plus_x3x4_1.py
tests/test_v3_rule_resolvent_deg5_sextic_dummit_F20.py
tests/test_v3_rule_sqrt_QQ_check_at_1.py
tests/test_verify_cardano_v2_helper.py
tests/test_verify_radical_roots_reducible_compose_v2.py