Scheme

Struct Scheme 

Source
pub struct Scheme<R: CommutativeRing> { /* private fields */ }
Expand description

A closed affine or projective scheme with one canonical defining ideal.

Implementations§

Source§

impl<R: Field + Display> Scheme<R>

Source

pub fn base_change<M>( &self, map: &M, ) -> Result<Scheme<M::Target>, BaseChangeError>
where M: CoefficientMap<Source = R>, M::Target: Field,

Extend a closed affine or projective presentation along a checked field map, preserving its ambient kind and presentation data.

Source§

impl<R: Field> Scheme<R>

Source

pub fn blow_up_at( &self, center: &SchemePoint<R>, ) -> Result<BlowUp<R>, GeometryError>

Construct verified affine charts for the blow-up at one rational point.

Source

pub fn tangent_cone( &self, point: &SchemePoint<R>, ) -> Result<Scheme<R>, GeometryError>

Form the tangent cone from a degree-compatible Mora standard basis.

Source

pub fn completion( &self, point: &SchemePoint<R>, truncation: SeriesTruncation, ) -> Result<SchemeCompletion<R>, GeometryError>

Complete at a rational point to one explicit finite monomial order.

Source§

impl Scheme<FiniteField>

Source

pub fn point_counts<I>( &self, degrees: I, ) -> Result<PointCountSequence, PointCountError>
where I: IntoIterator<Item = u64>,

Count points over each requested relative extension degree.

Source§

impl<R: CommutativeRing> Scheme<R>

Source

pub fn base(&self) -> &R

Base field context.

Source

pub fn coordinate_ring(&self) -> &PolynomialRing<R>

Exact coordinate ring of the chosen ambient presentation.

Source

pub fn defining_ideal(&self) -> &Ideal<PolynomialRing<R>>

Canonical defining ideal.

Source

pub fn is_affine(&self) -> bool

Whether this presentation has an affine ambient space.

Source

pub fn is_projective(&self) -> bool

Whether this presentation has a projective ambient space.

Source

pub fn affine_ambient(&self) -> Option<&AffineSpace<R>>

Affine ambient space, when this is an affine presentation.

Source

pub fn projective_ambient(&self) -> Option<&ProjectiveSpace<R>>

Projective ambient space, when this is a projective presentation.

Source§

impl Scheme<RationalField>

Source

pub fn dimension(&self) -> Result<i64, SchemeError>

Dimension of this affine or projective presentation.

Source

pub fn degree(&self) -> Result<Integer, SchemeError>

Standard-graded degree (multiplicity) of this presentation.

Source

pub fn hilbert_polynomial( &self, ) -> Result<Polynomial<RationalField>, SchemeError>

Standard Hilbert polynomial of the homogeneous/filtered coordinate ring.

Source

pub fn jacobian_subscheme(&self) -> Result<Self, SchemeError>

Rank-defect subscheme cut out by the expected-codimension Jacobian minors of the canonical defining basis.

Source

pub fn singular_subscheme(&self) -> Result<Self, SchemeError>

Scheme-theoretic singular locus for an established complete- intersection presentation over this perfect field.

Source

pub fn is_smooth(&self) -> Result<bool, SchemeError>

Decide smoothness when the exact complete-intersection Jacobian criterion applies.

Source

pub fn to_json(&self) -> Result<String, NoetherError>

Serialize this scheme presentation and canonical defining ideal.

Source

pub fn from_json(value: &str) -> Result<Self, NoetherError>

Restore and revalidate this scheme presentation.

Source§

impl Scheme<FiniteField>

Source

pub fn dimension(&self) -> Result<i64, SchemeError>

Dimension of this affine or projective presentation.

Source

pub fn degree(&self) -> Result<Integer, SchemeError>

Standard-graded degree (multiplicity) of this presentation.

Source

pub fn hilbert_polynomial( &self, ) -> Result<Polynomial<RationalField>, SchemeError>

Standard Hilbert polynomial of the homogeneous/filtered coordinate ring.

Source

pub fn jacobian_subscheme(&self) -> Result<Self, SchemeError>

Rank-defect subscheme cut out by the expected-codimension Jacobian minors of the canonical defining basis.

Source

pub fn singular_subscheme(&self) -> Result<Self, SchemeError>

Scheme-theoretic singular locus for an established complete- intersection presentation over this perfect field.

Source

pub fn is_smooth(&self) -> Result<bool, SchemeError>

Decide smoothness when the exact complete-intersection Jacobian criterion applies.

Source

pub fn to_json(&self) -> Result<String, NoetherError>

Serialize this scheme presentation and canonical defining ideal.

Source

pub fn from_json(value: &str) -> Result<Self, NoetherError>

Restore and revalidate this scheme presentation.

Source§

impl<R: Field> Scheme<R>

Source

pub fn point<I>(&self, coordinates: I) -> Result<SchemePoint<R>, SchemeError>
where I: IntoIterator<Item = R::Element>,

Validate one rational point and normalize projective coordinates.

Source§

impl Scheme<FiniteField>

Source

pub fn closed_points(&self) -> Result<FiniteSchemeClosedPointSet, SchemeError>

Solve a zero-dimensional affine scheme into closed points using a rational univariate representation and exact finite-field factorization.

This path never enumerates the base field. Proper residue extensions use deterministic Conway presentations when the current word- characteristic finite-field backend admits them.

Source

pub fn rational_points(&self) -> Result<RationalPointEnumeration, SchemeError>

Stream all rational points in canonical order.

Source

pub fn rational_points_shard( &self, shard_index: usize, shard_count: usize, ) -> Result<RationalPointEnumeration, SchemeError>

Stream one deterministic congruence shard of the canonical candidates.

Source

pub fn point_count( &self, ) -> Result<(Integer, PointCountCertificate), SchemeError>

Count rational points with one deterministic compiled Rust pass.

Source

pub fn point_count_partitioned( &self, shard_count: usize, ) -> Result<(Integer, PointCountCertificate), SchemeError>

Count rational points in deterministic checksum-bearing shards.

Trait Implementations§

Source§

impl<R: Clone + CommutativeRing> Clone for Scheme<R>

Source§

fn clone(&self) -> Scheme<R>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<R: CommutativeRing> Debug for Scheme<R>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Scheme<FiniteField>

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<'de> Deserialize<'de> for Scheme<RationalField>

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<R: CommutativeRing> Display for Scheme<R>

Source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<R: PartialEq + CommutativeRing> PartialEq for Scheme<R>

Source§

fn eq(&self, other: &Scheme<R>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl SemanticType for Scheme<FiniteField>

Source§

const TYPE_ID: &'static str = "noether/commalg/Scheme@1"

Versioned, language-neutral semantic identity.
Source§

fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>

Serialize without backend- or language-specific identity.
Source§

fn describe() -> &'static TypeDescription

Return static discovery metadata for the type.
Source§

impl SemanticType for Scheme<RationalField>

Source§

const TYPE_ID: &'static str = "noether/commalg/Scheme@1"

Versioned, language-neutral semantic identity.
Source§

fn canonical_bytes(&self) -> Result<Vec<u8>, NoetherError>

Serialize without backend- or language-specific identity.
Source§

fn describe() -> &'static TypeDescription

Return static discovery metadata for the type.
Source§

impl<R> Serialize for Scheme<R>
where R: Field + Serialize, R::Element: Serialize,

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<R: Eq + CommutativeRing> Eq for Scheme<R>

Source§

impl<R: CommutativeRing> StructuralPartialEq for Scheme<R>

Auto Trait Implementations§

§

impl<R> Freeze for Scheme<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for Scheme<R>

§

impl<R> Send for Scheme<R>

§

impl<R> Sync for Scheme<R>

§

impl<R> Unpin for Scheme<R>
where R: Unpin,

§

impl<R> UnwindSafe for Scheme<R>
where R: UnwindSafe, <R as Ring>::Element: RefUnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,