Skip to main content

EpistemicGpuPlan

Struct EpistemicGpuPlan 

Source
pub struct EpistemicGpuPlan {
    pub mode: EirEpistemicMode,
    pub epistemic_literals: Vec<EirEpistemicLiteral>,
    pub required_phases: Vec<EpistemicGpuHotPathPhase>,
    pub required_kernel_phases: Vec<EpistemicGpuHotPathPhase>,
    pub required_buffers: Vec<EpistemicGpuBufferKind>,
    pub reductions: Vec<EpistemicReductionPlan>,
    pub tuple_membership_bindings: Vec<EpistemicTupleMembershipBinding>,
    pub constraints: Vec<EpistemicConstraintPlan>,
    pub final_output_columns: Option<Vec<usize>>,
    pub solver_contract: EpistemicSolverServiceContract,
    pub cpu_fallbacks: EpistemicCpuFallbackCounters,
}
Expand description

Production-facing GPU execution contract for an epistemic program.

Fields§

§mode: EirEpistemicMode

Selected epistemic semantics mode.

§epistemic_literals: Vec<EirEpistemicLiteral>

Epistemic literals preserved from EIR.

§required_phases: Vec<EpistemicGpuHotPathPhase>

Coarse Generate-Propagate-Test phases required by the hot path.

§required_kernel_phases: Vec<EpistemicGpuHotPathPhase>

Concrete GPU kernel phases required by accepted production execution.

§required_buffers: Vec<EpistemicGpuBufferKind>

GPU buffer classes required by the hot path.

§reductions: Vec<EpistemicReductionPlan>

Reduced ordinary-program planning summaries.

§tuple_membership_bindings: Vec<EpistemicTupleMembershipBinding>

Per-literal stable-model tuple membership bindings.

§constraints: Vec<EpistemicConstraintPlan>

World-view integrity constraints lowered for accepted GPU execution.

§final_output_columns: Option<Vec<usize>>

Reduced-output columns copied into the public final output. None means identity/all columns; Some([]) is a real zero-arity projection.

§solver_contract: EpistemicSolverServiceContract

Solver-service obligations exported by the epistemic semantic plan.

§cpu_fallbacks: EpistemicCpuFallbackCounters

Forbidden CPU fallback counters. Release certification must keep these zero.

Implementations§

Source§

impl EpistemicGpuPlan

Source

pub fn new( mode: EirEpistemicMode, epistemic_literals: Vec<EirEpistemicLiteral>, reductions: Vec<EpistemicReductionPlan>, ) -> Self

Create a plan with the standard GPU hot-path phase and buffer requirements.

Source

pub fn with_tuple_membership_bindings( self, tuple_membership_bindings: Vec<EpistemicTupleMembershipBinding>, ) -> Self

Replace inferred tuple-membership bindings with planner-derived bindings.

Source

pub fn with_constraints(self, constraints: Vec<EpistemicConstraintPlan>) -> Self

Attach world-view integrity constraints lowered for accepted GPU execution.

Source

pub fn with_final_output_columns( self, final_output_columns: Option<Vec<usize>>, ) -> Self

Set the public projection applied after GPU tuple membership row filtering.

Source

pub fn validate_constraints(&self) -> Result<()>

Validate that every world-view constraint references in-range epistemic literals.

Source

pub fn with_solver_contract( self, solver_contract: EpistemicSolverServiceContract, ) -> Self

Replace inferred solver obligations with planner-derived obligations.

Source

pub fn validate_solver_contract(&self) -> Result<()>

Validate that solver obligations match the epistemic semantic boundary.

Source

pub fn validate_tuple_membership_bindings(&self) -> Result<()>

Validate that every epistemic literal has a matching tuple-membership binding.

Trait Implementations§

Source§

impl Clone for EpistemicGpuPlan

Source§

fn clone(&self) -> EpistemicGpuPlan

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 Debug for EpistemicGpuPlan

Source§

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

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

impl PartialEq for EpistemicGpuPlan

Source§

fn eq(&self, other: &EpistemicGpuPlan) -> 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 Eq for EpistemicGpuPlan

Source§

impl StructuralPartialEq for EpistemicGpuPlan

Auto Trait Implementations§

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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
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> 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, 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.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,