linalg · PadicSmithInvariants¶
12 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.
linalg.PadicSmithInvariants¶
Smith valuations visible below a fixed p-adic precision cap.
noether::linalg::PadicSmithInvariants · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: validation/unit/linalg/test_padic_smith_facade.py:10 · validation/unit/linalg/test_padic_smith_facade.py:28 · validation/unit/linalg/test_padic_smith_facade.py:29 · validation/unit/linalg/test_padic_smith_facade.py:56 · validation/unit/linalg/test_padic_smith_facade.py:65
linalg.PadicSmithInvariants.exact_exponents¶
Exact valuations of Smith factors visible below the cap.
Detailed contract
Exact valuations of the visible nonzero Smith factors.
noether::linalg::PadicSmithInvariants::exact_exponents · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: validation/unit/linalg/test_padic_smith_facade.py:33 · validation/unit/linalg/test_padic_smith_facade.py:50 · validation/unit/linalg/test_padic_smith_facade.py:60 · validation/unit/linalg/test_padic_smith_facade.py:75 · validation/unit/linalg/test_padic_smith_facade.py:77
linalg.PadicSmithInvariants.from_json¶
Deserialize and revalidate a PadicSmithInvariants from typed JSON.
Detailed contract
Deserialize and revalidate a p-adic Smith invariant summary.
noether::linalg::PadicSmithInvariants::from_json · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | released |
| Semantic ID | noether/linalg/PadicSmithInvariants@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
linalg.PadicSmithInvariants.precision¶
Absolute p-adic precision cap.
Detailed contract
Absolute p-adic precision cap N.
noether::linalg::PadicSmithInvariants::precision · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: examples/10_padic_hensel_lifting.py:3 · examples/11_qadic_witt_vectors.py:3 · examples/31_local_fields_and_precision.py:3 · examples/31_local_fields_and_precision.py:34 · examples/31_local_fields_and_precision.py:38 · validation/unit/commalg/test_polynomial_facade.py:102
linalg.PadicSmithInvariants.prime¶
Residue characteristic.
Detailed contract
Residue characteristic of the coefficient context.
noether::linalg::PadicSmithInvariants::prime · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@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
linalg.PadicSmithInvariants.rank_lower_bound¶
Certified lower rank bound for every compatible Z_p lift.
Detailed contract
Certified lower bound for the rank of every compatible Z_p lift.
noether::linalg::PadicSmithInvariants::rank_lower_bound · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: validation/unit/linalg/test_padic_smith_facade.py:35 · validation/unit/linalg/test_padic_smith_facade.py:62
linalg.PadicSmithInvariants.rank_upper_bound¶
Upper rank bound for every compatible Z_p lift.
Detailed contract
Upper bound for the rank of every compatible Z_p lift.
noether::linalg::PadicSmithInvariants::rank_upper_bound · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: validation/unit/linalg/test_padic_smith_facade.py:36 · validation/unit/linalg/test_padic_smith_facade.py:63
linalg.PadicSmithInvariants.shape¶
Source matrix shape.
Detailed contract
Shape of the source matrix.
noether::linalg::PadicSmithInvariants::shape · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: examples/27_weight_characters.py:19 · examples/27_weight_characters.py:8 · examples/27_weight_characters.py:9 · examples/distributed/f2_linear_algebra.py:51 · examples/distributed/f2_linear_algebra.py:52 · validation/unit/combin/test_acceptance_workload.py:38
linalg.PadicSmithInvariants.to_json¶
Serialize this PadicSmithInvariants to its canonical typed JSON representation.
Detailed contract
Serialize the complete invariant summary as canonical typed JSON.
noether::linalg::PadicSmithInvariants::to_json · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | released |
| Semantic ID | noether/linalg/PadicSmithInvariants@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
linalg.PadicSmithInvariants.unresolved_pivots¶
Number of diagonal positions unresolved at the precision cap.
Detailed contract
Number of diagonal positions not resolved below the precision cap.
noether::linalg::PadicSmithInvariants::unresolved_pivots · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | attached / bounded |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: validation/unit/linalg/test_padic_smith_facade.py:34 · validation/unit/linalg/test_padic_smith_facade.py:51 · validation/unit/linalg/test_padic_smith_facade.py:61 · validation/unit/linalg/test_padic_smith_facade.py:76 · validation/unit/linalg/test_padic_smith_facade.py:78
linalg.PadicSmithInvariants.verify¶
Recheck the result's internal precision and rank invariants.
Detailed contract
Recheck the result’s precision, ordering, shape, and rank invariants.
noether::linalg::PadicSmithInvariants::verify · Direct Rust declaration
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | released |
| Semantic ID | noether/linalg/PadicSmithInvariants@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
linalg.PadicSmithInvariants.verify_source¶
Recompute and compare against one dense or sparse p-adic source.
noether::linalg::PadicSmithInvariants · Python projection
| Contract | Value |
|---|---|
| Guarantee | checked deterministic result |
| Determinism | deterministic |
| Availability | default CPU build |
| Domain implementation crates | noether, flint-core, m4rst, m4rst-distributed, m4rste, mzs, pwvla, spar-core, sparla, sparb, lattice-enum |
| GIL | released |
| Semantic ID | noether/linalg/PadicSmithInvariants@1 |
Executable usage: validation/unit/linalg/test_padic_smith_facade.py:38 · validation/unit/linalg/test_padic_smith_facade.py:52