Skip to content

commalg · PointCountSequence

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

Worked example

The complete checked program Enumerate and certify rational points on a finite-field hyperbola uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Enumerate and certify rational points on a finite-field hyperbola."""

from noether.commalg import AffineSpace
from noether.numthy import FiniteField


def main() -> None:
    field = FiniteField.prime(5)
    plane = AffineSpace(field, 2, names=["x", "y"])
    x, y = plane.coordinate_ring.generators()
    hyperbola = plane.closed_subscheme(plane.coordinate_ring.ideal([x * y - 1]))
    count, certificate = hyperbola.point_count(shards=3)
    certificate.verify(hyperbola)
    assert count == 4
    assert len(list(hyperbola.rational_points())) == count
    print(f"xy=1 over F_5 has {count} rational points")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/18_finite_field_schemes.py.

commalg.PointCountSequence

Exact extension-field point counts with replayable evidence.

class PointCountSequence

noether::commalg::PointCountSequence · Direct Rust declaration

pub struct PointCountSequence { /* private fields */ }
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/PointCountSequence@1

Executable usage: validation/unit/commalg/test_surface_facade.py:13 · validation/unit/commalg/test_surface_facade.py:49 · validation/unit/commalg/test_surface_facade.py:54 · validation/unit/commalg/test_surface_facade.py:59

commalg.PointCountSequence.base

Return the base recorded by this PointCountSequence.

Detailed contract

Explicit finite base field.

(self) -> FiniteField

noether::commalg::PointCountSequence::base · Direct Rust declaration

pub fn base(&self) -> &FiniteField
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/PointCountSequence@1

Executable usage: validation/unit/commalg/test_acceptance_workload.py:59 · validation/unit/commalg/test_acceptance_workload.py:60 · validation/unit/commalg/test_base_change.py:112 · validation/unit/commalg/test_base_change.py:113 · validation/unit/commalg/test_polynomial_ideal_facade.py:398 · validation/unit/commalg/test_polynomial_ideal_facade.py:399

commalg.PointCountSequence.count

Compute count for this PointCountSequence.

Detailed contract

Return the exact count at one relative degree, when present.

(self, degree: int) -> int | None

noether::commalg::PointCountSequence::count · Direct Rust declaration

pub fn count(&self, degree: u64) -> Option<&Integer>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/PointCountSequence@1

Executable usage: examples/18_finite_field_schemes.py:14 · examples/18_finite_field_schemes.py:16 · examples/18_finite_field_schemes.py:17 · examples/18_finite_field_schemes.py:18 · validation/unit/combin/test_graph_facade.py:34 · validation/unit/combinatorics/test_poset.py:142

commalg.PointCountSequence.counts

Return the counts recorded by this PointCountSequence.

Detailed contract

Counts in strictly increasing requested degree order.

(self) -> list[ExtensionPointCount]

noether::commalg::PointCountSequence::counts · Direct Rust declaration

pub fn counts(&self) -> &[ExtensionPointCount]
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/PointCountSequence@1

Executable usage: validation/unit/commalg/test_surface_facade.py:45 · validation/unit/commalg/test_surface_facade.py:46 · validation/unit/commalg/test_surface_facade.py:47 · validation/unit/commalg/test_surface_facade.py:48 · validation/unit/commalg/test_surface_facade.py:49 · validation/unit/commalg/test_surface_facade.py:51

commalg.PointCountSequence.from_json

Deserialize and revalidate a PointCountSequence from typed JSON.

Detailed contract

Restore and exactly reverify a point-count sequence.

(cls, value: str) -> PointCountSequence

noether::commalg::PointCountSequence::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, module-core, poly-core, resolution-kernel
GIL released
Semantic ID noether/commalg/PointCountSequence@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

commalg.PointCountSequence.target

Return the target recorded by this PointCountSequence.

Detailed contract

Scheme presentation being counted.

(self) -> Scheme[FiniteField] | CyclicHypersurfaceCover[FiniteField]

noether::commalg::PointCountSequence::target · Direct Rust declaration

pub fn target(&self) -> &PointCountTarget
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel
GIL attached / bounded
Semantic ID noether/commalg/PointCountSequence@1

Executable usage: examples/09_finite_field_isomorphisms.py:10 · examples/09_finite_field_isomorphisms.py:11 · examples/30_modules_and_resolutions.py:33 · examples/30_modules_and_resolutions.py:38 · examples/31_local_fields_and_precision.py:27 · examples/36_affine_normalization.py:16

commalg.PointCountSequence.to_json

Serialize this PointCountSequence to its canonical typed JSON representation.

Detailed contract

Serialize the target, counts, and complete evidence.

(self) -> str

noether::commalg::PointCountSequence::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, module-core, poly-core, resolution-kernel
GIL released
Semantic ID noether/commalg/PointCountSequence@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

commalg.PointCountSequence.verify

Replay and verify the mathematical evidence carried by this PointCountSequence.

Detailed contract

Re-run every exact count and compare all evidence.

(self) -> None

noether::commalg::PointCountSequence::verify · Direct Rust declaration

pub fn verify(&self) -> Result<(), PointCountError>
Contract Value
Guarantee checked deterministic result
Determinism deterministic
Availability default CPU build
Domain implementation crates noether, flint-core, groebner-kernel, module-core, poly-core, resolution-kernel
GIL released
Semantic ID noether/commalg/PointCountSequence@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