tokitai-operator 0.1.0

Verified DL kernel compiler: formally-checked GEMM, p-adic, sheaf, contract-carrying ops. Paper-artifact grade.
Documentation
//! Domain surface: p-adic, finite field, contract primitives.
//!
//! A "domain" in Tokitai is a mathematical structure that an
//! operator is allowed to operate over. The default `DomainId`
//! instances are `integer`, `padic:Q_5`, `finite_field:F_5`, etc.
//! Each domain carries a set of `Contract`s that the planner
//! reads to decide whether a lowering rule applies.
//!
//! - `contract` — `Contract`, `ContractId`, `ContractSet`, etc.
//! - `precision` — `PrecisionModel` (Exact, FixedDigits, etc.).
//! - `structure` — `DomainKind` (Boolean, Integer, Field, ...).
//! - `valued` — `ValuationBound`, the p-adic valuation bound.
//! - `padic` (P156) — `PadicDomain` and the p-adic value type.
//! - `finite_field` (P346) — `FiniteFieldDomain` and the
//!   `FiniteFieldElement` type.
//!
//! Public types: `DomainId`, `Domain`, `DomainKind`, `PrecisionModel`,
//! `Padic`, `PadicDomain`, `FiniteFieldElement`.
//!
pub mod contract;
pub mod finite_field;
pub mod padic;
pub mod precision;
pub mod structure;
pub mod valued;

pub use contract::{Claim, Condition, Contract, ContractId, ContractSet, Evidence, Scope};
pub use finite_field::{FiniteFieldDomain, FiniteFieldElement};
pub use padic::{
    DynamicPadic, DynamicPadicDomain, DynamicPadicMatrix, DynamicPadicMeta, Padic,
    PadicCertifiedMatmulReport, PadicDomain, PadicErrorModel, PadicMatrix, PadicMatrixMetadata,
    PadicMeta, PadicOutputCertificate, PadicRepresentation, ValuationSkipReport,
};
pub use precision::PrecisionModel;
pub use structure::{AlgebraicStructure, DomainKind, Exactness};
pub use valued::{NonArchimedeanDomain, ValuationBound, ValuedDomain};

#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct DomainId(pub String);

impl DomainId {
    pub fn new(value: impl Into<String>) -> Self {
        Self(value.into())
    }
}

pub trait Domain {
    type Element;

    fn id(&self) -> DomainId;
    fn structure(&self) -> AlgebraicStructure;
    fn precision_model(&self) -> PrecisionModel;
    fn contracts(&self) -> ContractSet {
        ContractSet::default()
    }
}