Skip to content

commalg · WeightedProjectiveChart

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

Worked example

The complete checked program Reduce a module element and certify a minimal free resolution uses this API directly.

# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Benjamin Antieau and Deven Manam
"""Reduce a module element and certify a minimal free resolution."""

from noether import Q
from noether.commalg import Degree, MonomialOrder, PolynomialRing
from noether.homalg import (
    FreeModule,
    ModuleElement,
    ModuleHomomorphism,
    ModuleMonomialOrder,
    PresentedModule,
    Submodule,
)
from noether.linalg import Matrix, Vector


def main() -> None:
    ring = PolynomialRing(Q, ["x", "y", "z", "w"])
    x, y, z, w = ring.generators()
    order = ModuleMonomialOrder.term_over_position(MonomialOrder.GREVLEX)

    ambient = FreeModule(ring, 2)
    first = ModuleElement(ambient, Vector.from_values(ring, [x, y]))
    second = ModuleElement(ambient, Vector.from_values(ring, [y, 1]))
    submodule = Submodule.from_generators(ambient, [first, second])
    basis = submodule.groebner_basis(order)
    reduction = basis.reduce(first + second * x)
    basis.verify()
    reduction.verify()
    assert reduction.is_member()

    target = FreeModule(ring, 1, grading_rank=1, degree_shifts=[Degree([0])])
    source = FreeModule(ring, 3, grading_rank=1, degree_shifts=[Degree([-2])] * 3)
    twisted_cubic = PresentedModule(
        ModuleHomomorphism(
            source,
            target,
            Matrix.from_rows(ring, [[x * z - y**2, x * w - y * z, y * w - z**2]]),
        )
    )
    resolution = twisted_cubic.minimal_free_resolution(order)
    resolution.verify()
    betti = resolution.graded_betti_table()
    betti.verify()
    assert betti.entries == [
        (0, Degree([0]), 1),
        (1, Degree([2]), 3),
        (2, Degree([3]), 2),
    ]
    print(f"module member certified; minimal Betti entries={betti.entries}")


if __name__ == "__main__":
    main()

Run it with .venv/bin/python examples/30_modules_and_resolutions.py.

commalg.WeightedProjectiveChart

A standard affine cover together with its residual cyclic quotient action.

class WeightedProjectiveChart

noether::commalg::WeightedProjectiveChart · Direct Rust declaration

pub struct WeightedProjectiveChart<R: CommutativeRing> { /* 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

commalg.WeightedProjectiveChart.action_weights

Return the action weights recorded by this WeightedProjectiveChart.

Detailed contract

Residual action weights modulo the stabilizer order.

(self) -> list[int]

noether::commalg::WeightedProjectiveChart::action_weights · Direct Rust declaration

pub fn action_weights(&self) -> &[u64]
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

commalg.WeightedProjectiveChart.affine_cover

Return the affine cover recorded by this WeightedProjectiveChart.

Detailed contract

Affine cover before taking the residual cyclic quotient.

(self) -> AffineSpace[C]

noether::commalg::WeightedProjectiveChart::affine_cover · Direct Rust declaration

pub fn affine_cover(&self) -> &AffineSpace<R>
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

commalg.WeightedProjectiveChart.ambient

Return the ambient recorded by this WeightedProjectiveChart.

Detailed contract

Ambient weighted projective space.

(self) -> WeightedProjectiveSpace[C]

noether::commalg::WeightedProjectiveChart::ambient · Direct Rust declaration

pub fn ambient(&self) -> &WeightedProjectiveSpace<R>
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

Executable usage: examples/30_modules_and_resolutions.py:23 · examples/30_modules_and_resolutions.py:24 · examples/30_modules_and_resolutions.py:25 · examples/30_modules_and_resolutions.py:26 · examples/38_exact_linear_systems.py:49 · examples/38_exact_linear_systems.py:53

commalg.WeightedProjectiveChart.coordinate_index

Return the coordinate index recorded by this WeightedProjectiveChart.

Detailed contract

Coordinate inverted on this chart.

(self) -> int

noether::commalg::WeightedProjectiveChart::coordinate_index · Direct Rust declaration

pub fn coordinate_index(&self) -> usize
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

commalg.WeightedProjectiveChart.is_affine_space

Test whether this WeightedProjectiveChart is affine space.

Detailed contract

Whether this quotient chart is honestly an affine-space chart.

(self) -> bool

noether::commalg::WeightedProjectiveChart::is_affine_space · Direct Rust declaration

pub fn is_affine_space(&self) -> bool
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

Executable usage: validation/unit/commalg/test_surface_facade.py:29 · validation/unit/commalg/test_surface_facade.py:30

commalg.WeightedProjectiveChart.stabilizer_order

Return the stabilizer order recorded by this WeightedProjectiveChart.

Detailed contract

Order of the residual diagonal cyclic action.

(self) -> int

noether::commalg::WeightedProjectiveChart::stabilizer_order · Direct Rust declaration

pub fn stabilizer_order(&self) -> u64
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

Executable usage: validation/unit/commalg/test_surface_facade.py:28