Skip to content

numthy · PadicField

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

Worked example

The complete checked program Lift a simple square root from F_5 to fixed-precision Z_5 uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Lift a simple square root from F_5 to fixed-precision Z_5."""

from noether.commalg import PolynomialRing
from noether.numthy import PadicRing


def main() -> None:
    integers = PadicRing(5, absolute_precision=6)
    polynomials = PolynomialRing(integers, ["x"])
    x = polynomials.generator("x")
    equation = x**2 - 6
    root = integers.hensel_lift(equation, integers.residue_field(1))
    assert equation.evaluate([root]) == integers.zero()
    print(f"sqrt(6) in Z_5 mod 5^6 is represented by {int(root)}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/10_padic_hensel_lifting.py.

numthy.PadicField

A fixed-precision model of Q_p, with inversion but without exact-field claims.

PadicField(prime: int, absolute_precision: int)

noether::numthy::PadicField · Direct Rust declaration

pub struct PadicField { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/commalg/test_context_tower_workload.py:119 · validation/unit/commalg/test_context_tower_workload.py:23 · validation/unit/commalg/test_context_tower_workload.py:36 · validation/unit/commalg/test_context_tower_workload.py:56 · validation/unit/commalg/test_polynomial_facade.py:26 · validation/unit/commalg/test_polynomial_facade.py:353

numthy.PadicField.__call__

Coerce the supplied input through this context or mathematical map.

(self, value: int) -> PadicElement

noether::numthy::PadicField · Python projection

Python projection convenience over this Rust mathematical type
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/infra/test_discovery.py:57 · validation/unit/infra/test_public_api_index.py:155 · validation/unit/infra/test_public_api_index.py:169

numthy.PadicField.absolute_precision

Return the absolute precision recorded by this PadicField.

Detailed contract

Immutable absolute precision cap N.

(self) -> int

noether::numthy::PadicField::absolute_precision · Direct Rust declaration

pub fn absolute_precision(&self) -> u64
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/10_padic_hensel_lifting.py:10 · examples/11_qadic_witt_vectors.py:10 · examples/31_local_fields_and_precision.py:11 · validation/unit/commalg/test_acceptance_workload.py:26 · validation/unit/commalg/test_acceptance_workload.py:27 · validation/unit/commalg/test_context_tower_workload.py:111

numthy.PadicField.coefficient_frobenius

Compute coefficient frobenius for this PadicField.

Detailed contract

Checked coefficient Frobenius power, the identity on Q_p coefficients.

(self, exponent: int) -> PadicFieldFrobenius

noether::numthy::PadicField::coefficient_frobenius · Direct Rust declaration

pub fn coefficient_frobenius(&self, exponent: u64) -> PadicFieldFrobenius
fn coefficient_frobenius(&self, exponent: u64) -> Self::Frobenius
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/commalg/test_power_series_facade.py:279 · validation/unit/commalg/test_power_series_facade.py:286 · validation/unit/numthy/test_padic_field_facade.py:109 · validation/unit/numthy/test_padic_ring_facade.py:132 · validation/unit/numthy/test_padic_ring_facade.py:138 · validation/unit/numthy/test_qadic_field_facade.py:125

numthy.PadicField.divide_uniformizer_exact

Compute divide uniformizer exact for this PadicField.

Detailed contract

Divide by p^exponent and lower absolute precision by exponent.

(self, value: PadicElement, exponent: int) -> PadicElement

noether::numthy::PadicField::divide_uniformizer_exact · Direct Rust declaration

pub fn divide_uniformizer_exact( &self, value: &PadicElement, exponent: u64, ) -> Result<PadicElement, PadicUniformizerDivisionError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/numthy/test_padic_field_facade.py:100 · validation/unit/numthy/test_padic_ring_facade.py:147 · validation/unit/numthy/test_padic_ring_facade.py:153 · validation/unit/numthy/test_qadic_field_facade.py:92 · validation/unit/numthy/test_qadic_ring_facade.py:84 · validation/unit/numthy/test_qadic_ring_facade.py:89

numthy.PadicField.from_json

Deserialize and revalidate a fixed-precision p-adic field context.

(cls, value: str) -> PadicField

noether::numthy::PadicField::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
GIL attached / bounded
Semantic ID noether/numthy/PadicField@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

numthy.PadicField.integral_embedding

Compute integral embedding for this PadicField.

Detailed contract

Canonical embedding of this field’s fixed-cap integral ring.

(self) -> PadicIntegralEmbedding

noether::numthy::PadicField::integral_embedding · Direct Rust declaration

pub fn integral_embedding(&self) -> PadicIntegralEmbedding
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/commalg/test_power_series_facade.py:308 · validation/unit/numthy/test_padic_field_facade.py:59 · validation/unit/numthy/test_padic_field_facade.py:77 · validation/unit/numthy/test_qadic_field_facade.py:102 · validation/unit/numthy/test_qadic_field_facade.py:78

numthy.PadicField.integral_ring

Return the integral ring recorded by this PadicField.

Detailed contract

Fixed-cap integral ring canonically embedded in this field context.

(self) -> PadicRing

noether::numthy::PadicField::integral_ring · Direct Rust declaration

pub fn integral_ring(&self) -> &PadicRing
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/numthy/test_padic_field_facade.py:66 · validation/unit/numthy/test_qadic_field_facade.py:85

numthy.PadicField.inverse

Compute inverse for this PadicField.

Detailed contract

Invert a value that is nonzero at the available precision. This is finite-precision arithmetic, not a proof that the represented value is nonzero in Q_p. Consequently PadicField deliberately does not implement the exact crate::Field trait.

(self, value: PadicElement) -> PadicElement

noether::numthy::PadicField::inverse · Direct Rust declaration

pub fn inverse( &self, value: &PadicElement, ) -> Result<PadicElement, InversionError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/distributed/f2_linear_algebra.py:37 · examples/distributed/f2_linear_algebra.py:39 · validation/unit/commalg/test_context_tower_workload.py:121 · validation/unit/commalg/test_context_tower_workload.py:122 · validation/unit/commalg/test_context_tower_workload.py:75 · validation/unit/commalg/test_context_tower_workload.py:77

numthy.PadicField.one

Compute one for this PadicField.

(self) -> PadicElement

noether::numthy::PadicField::one · Direct Rust declaration

fn one(&self) -> Self::Element
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/02_ball_arithmetic.py:13 · examples/11_qadic_witt_vectors.py:11 · examples/24_homology_and_persistence.py:3 · examples/31_local_fields_and_precision.py:27 · validation/unit/combinatorics/test_poset.py:3 · validation/unit/commalg/test_acceptance_workload.py:37

numthy.PadicField.precision_restriction

Compute precision restriction for this PadicField.

Detailed contract

Construct a first-class restriction to a coarser fixed-cap field.

(self, absolute_precision: int) -> PadicFieldRestriction

noether::numthy::PadicField::precision_restriction · Direct Rust declaration

pub fn precision_restriction( &self, target_absolute_precision: u64, ) -> Result<PadicFieldRestriction, PadicRestrictionError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/31_local_fields_and_precision.py:30 · validation/unit/commalg/test_power_series_facade.py:319 · validation/unit/homalg/test_padic_homology_facade.py:204 · validation/unit/numthy/test_padic_field_facade.py:58 · validation/unit/numthy/test_padic_field_facade.py:78 · validation/unit/numthy/test_padic_local_field_facade.py:101

numthy.PadicField.prime

Return the prime recorded by this PadicField.

Detailed contract

Residue characteristic p.

(self) -> int

noether::numthy::PadicField::prime · Direct Rust declaration

pub fn prime(&self) -> &Integer
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/07_integer_factorization.py:12 · examples/12_number_field_ideals.py:16 · examples/12_number_field_ideals.py:19 · examples/18_finite_field_schemes.py:10 · examples/24_homology_and_persistence.py:22 · examples/33_simplicial_cohomology_operations.py:24

numthy.PadicField.residue_field

Return the residue field recorded by this PadicField.

Detailed contract

Prime residue field F_p.

(self) -> FiniteField

noether::numthy::PadicField::residue_field · Direct Rust declaration

pub fn residue_field(&self) -> &FiniteField
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/10_padic_hensel_lifting.py:14 · examples/11_qadic_witt_vectors.py:10 · examples/11_qadic_witt_vectors.py:11 · examples/11_qadic_witt_vectors.py:14 · examples/11_qadic_witt_vectors.py:9 · validation/unit/commalg/test_acceptance_workload.py:25

numthy.PadicField.restrict

Compute restrict for this PadicField.

Detailed contract

Explicitly discard high p-adic digits into a distinct field context.

(self, value: PadicElement, absolute_precision: int) -> PadicElement

noether::numthy::PadicField::restrict · Direct Rust declaration

pub fn restrict( &self, value: &PadicElement, requested_absolute_precision: u64, ) -> Result<PadicElement, PadicRestrictionError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: validation/unit/commalg/test_local_algebra.py:93 · validation/unit/groups/test_weight_characters.py:48 · validation/unit/numthy/test_padic_local_field_facade.py:100 · validation/unit/numthy/test_padic_ring_facade.py:62 · validation/unit/numthy/test_qadic_ring_facade.py:48

numthy.PadicField.to_json

Serialize the fixed prime and absolute precision as canonical typed JSON.

(self) -> str

noether::numthy::PadicField::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
GIL attached / bounded
Semantic ID noether/numthy/PadicField@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

numthy.PadicField.zero

Compute zero for this PadicField.

(self) -> PadicElement

noether::numthy::PadicField::zero · Direct Rust declaration

fn zero(&self) -> Self::Element
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core
GIL attached / bounded
Semantic ID noether/numthy/PadicField@1

Executable usage: examples/08_finite_field_extensions.py:11 · examples/10_padic_hensel_lifting.py:15 · examples/40_exterior_algebra.py:26 · examples/distributed/f2_linear_algebra.py:28 · examples/distributed/f2_linear_algebra.py:29 · examples/distributed/f2_linear_algebra.py:30