Skip to content

homalg · PadicCyclicSummand

6 accepted declarations. Python and Rust forms, contracts, evidence, failure boundaries, and checked usages are kept together below.

Worked example

The complete checked program Use a ramified local field, its maximal order, and explicit precision loss uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Use a ramified local field, its maximal order, and explicit precision loss."""

from noether.commalg import PolynomialRing
from noether.numthy import FiniteField, PadicLocalField, PadicLocalPrecision, QadicRing


def main() -> None:
    residue = FiniteField.extension(3, 2)
    coefficients = QadicRing(residue, absolute_precision=4)
    polynomials = PolynomialRing(coefficients, ["T"])
    t = polynomials.generator(0)
    field = PadicLocalField(
        coefficients,
        t**2 + 3,
        PadicLocalPrecision(7),
        uniformizer_name="pi",
    )

    pi = field.uniformizer()
    order = field.maximal_order()
    frobenius = field.coefficient_frobenius_conjugate(1)
    frobenius.verify()
    assert order.is_maximal()
    assert pi in order
    assert frobenius(field.one() + pi).field == frobenius.target

    try:
        field.precision_restriction(PadicLocalPrecision(8))
    except ValueError as error:
        precision_failure = type(error).__name__
    else:
        raise AssertionError("increasing fixed precision must fail closed")

    print(
        f"degree={field.degree}, discriminant valuation={order.discriminant_valuation()}, "
        f"Frobenius exponent={frobenius.exponent}, precision failure={precision_failure}"
    )


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/31_local_fields_and_precision.py.

homalg.PadicCyclicSummand

One exact or unresolved p-primary cyclic relation.

class PadicCyclicSummand

noether::homalg::PadicCyclicSummand · Direct Rust declaration

pub enum PadicCyclicSummand { Exact { exponent: u64, }, AtLeast { exponent: u64, }, }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/PadicCyclicSummand@1

Executable usage: validation/unit/homalg/test_padic_homology_facade.py:15 · validation/unit/homalg/test_padic_homology_facade.py:39

homalg.PadicCyclicSummand.exponent

Return the exponent recorded by this PadicCyclicSummand.

Detailed contract

Exact exponent or certified lower bound, according to Self::kind.

(self) -> int

noether::homalg::PadicCyclicSummand::exponent · Direct Rust declaration

pub fn exponent(&self) -> u64
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/PadicCyclicSummand@1

Executable usage: examples/31_local_fields_and_precision.py:38 · validation/unit/commalg/test_base_change.py:93 · validation/unit/commalg/test_groebner_verification_budget.py:32 · validation/unit/commalg/test_groebner_verification_budget.py:33 · validation/unit/commalg/test_groebner_verification_budget.py:34 · validation/unit/commalg/test_groebner_verification_budget.py:35

homalg.PadicCyclicSummand.from_json

Deserialize and revalidate a PadicCyclicSummand from typed JSON.

Detailed contract

Deserialize canonical typed JSON.

(cls, value: str) -> PadicCyclicSummand

noether::homalg::PadicCyclicSummand::from_json · Direct Rust declaration

pub fn from_json(value: &str) -> Result<Self, NoetherError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/PadicCyclicSummand@1

Executable usage: validation/unit/category/test_category.py:14 · validation/unit/combin/test_acceptance_workload.py:65 · validation/unit/combin/test_acceptance_workload.py:86 · validation/unit/combin/test_graph_facade.py:106 · validation/unit/combin/test_graph_facade.py:25 · validation/unit/combinatorics/test_kashiwara_crystal.py:32

homalg.PadicCyclicSummand.kind

Return the kind recorded by this PadicCyclicSummand.

Detailed contract

Stable variant name.

(self) -> Literal['exact', 'at_least']

noether::homalg::PadicCyclicSummand::kind · Direct Rust declaration

pub fn kind(&self) -> &'static str
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/PadicCyclicSummand@1

Executable usage: validation/unit/combinatorics/test_poset.py:95 · validation/unit/commalg/test_curve_facade.py:137 · validation/unit/commalg/test_curve_facade.py:43 · validation/unit/commalg/test_curve_facade.py:44 · validation/unit/commalg/test_curve_facade.py:45 · validation/unit/commalg/test_curve_facade.py:80

homalg.PadicCyclicSummand.to_json

Serialize this PadicCyclicSummand to its canonical typed JSON representation.

Detailed contract

Canonical typed JSON.

(self) -> str

noether::homalg::PadicCyclicSummand::to_json · Direct Rust declaration

pub fn to_json(&self) -> Result<String, NoetherError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/PadicCyclicSummand@1

Executable usage: validation/unit/category/test_category.py:14 · validation/unit/category/test_category.py:15 · validation/unit/combin/test_acceptance_workload.py:30 · validation/unit/combin/test_acceptance_workload.py:65 · validation/unit/combin/test_acceptance_workload.py:86 · validation/unit/combin/test_graph_facade.py:106

homalg.PadicCyclicSummand.verify

Replay and verify the mathematical evidence carried by this PadicCyclicSummand.

Detailed contract

Recheck that the relation exponent is positive.

(self) -> None

noether::homalg::PadicCyclicSummand::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), VerificationError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, m4rst, m4rste, module-core, resolution-kernel, sparla
GIL attached / bounded
Semantic ID noether/homalg/PadicCyclicSummand@1

Executable usage: examples/01_bezout_certificates.py:10 · examples/01_bezout_certificates.py:3 · examples/03_exact_linear_systems.py:13 · examples/03_exact_linear_systems.py:3 · examples/04_smith_normal_form.py:12 · examples/06_shortest_lattice_vectors.py:12