pub struct FixpointEngine;Expand description
Deterministic worklist solver for admitted monotone analyses.
Implementations§
§impl FixpointEngine
impl FixpointEngine
pub fn solve_proven<N, E, L, C, S, P>(
graph: &DataflowGraph<N, E, L, C>,
transfer: &AdmittedTransfer<P>,
bottom: S,
seeds: impl IntoIterator<Item = (N, S)>,
budgets: QueryBudgets,
) -> CompletionProofResult<N, E, L, C, S>
pub fn solve_proven<N, E, L, C, S, P>( graph: &DataflowGraph<N, E, L, C>, transfer: &AdmittedTransfer<P>, bottom: S, seeds: impl IntoIterator<Item = (N, S)>, budgets: QueryBudgets, ) -> CompletionProofResult<N, E, L, C, S>
Solves to a stable fixpoint and mints its content-bound completion proof.
pub fn present<'a, N, E, L, C, S, P>(
proof: &'a DataflowCompletionProof<N, E, C, S>,
graph: &DataflowGraph<N, E, L, C>,
transfer: &AdmittedTransfer<P>,
bottom: &S,
seeds: impl IntoIterator<Item = (N, S)>,
budgets: QueryBudgets,
) -> Result<&'a DataflowSolution<N, E, C, S>, CompletionProofMismatch>
pub fn present<'a, N, E, L, C, S, P>( proof: &'a DataflowCompletionProof<N, E, C, S>, graph: &DataflowGraph<N, E, L, C>, transfer: &AdmittedTransfer<P>, bottom: &S, seeds: impl IntoIterator<Item = (N, S)>, budgets: QueryBudgets, ) -> Result<&'a DataflowSolution<N, E, C, S>, CompletionProofMismatch>
Presents a proof only when every semantic input still matches.
pub fn solve_incremental<N, E, L, C, S, P>(
previous: &DataflowCompletionProof<N, E, C, S>,
graph: &DataflowGraph<N, E, L, C>,
transfer: &AdmittedTransfer<P>,
bottom: S,
seeds: impl IntoIterator<Item = (N, S)>,
budgets: QueryBudgets,
) -> CompletionProofResult<N, E, L, C, S>
pub fn solve_incremental<N, E, L, C, S, P>( previous: &DataflowCompletionProof<N, E, C, S>, graph: &DataflowGraph<N, E, L, C>, transfer: &AdmittedTransfer<P>, bottom: S, seeds: impl IntoIterator<Item = (N, S)>, budgets: QueryBudgets, ) -> CompletionProofResult<N, E, L, C, S>
Recomputes exactly the observed successor cone of changed entry facts.
Structural, lattice, policy, or limit changes are intentionally refused: callers must perform a clean solve for those semantic edits. Dependency edits reuse unaffected states and their observations, then remint a proof from the complete final state rather than blessing the old witness.
pub fn solve<N, E, L, C, S, P>(
graph: &DataflowGraph<N, E, L, C>,
transfer: &AdmittedTransfer<P>,
bottom: S,
seeds: impl IntoIterator<Item = (N, S)>,
budgets: QueryBudgets,
) -> DataflowResult<N, E, L, C, S>
pub fn solve<N, E, L, C, S, P>( graph: &DataflowGraph<N, E, L, C>, transfer: &AdmittedTransfer<P>, bottom: S, seeds: impl IntoIterator<Item = (N, S)>, budgets: QueryBudgets, ) -> DataflowResult<N, E, L, C, S>
Solves from explicit entry/exit facts; nodes not reached from a seed stay at bottom.
pub fn start_resumable<N, E, L, C, S, P>(
graph: &DataflowGraph<N, E, L, C>,
transfer: &AdmittedTransfer<P>,
bottom: S,
seeds: impl IntoIterator<Item = (N, S)>,
max_visits: usize,
explanation_limit: usize,
) -> DataflowProgressResult<N, E, L, C, S>
pub fn start_resumable<N, E, L, C, S, P>( graph: &DataflowGraph<N, E, L, C>, transfer: &AdmittedTransfer<P>, bottom: S, seeds: impl IntoIterator<Item = (N, S)>, max_visits: usize, explanation_limit: usize, ) -> DataflowProgressResult<N, E, L, C, S>
Starts a solve and executes at most max_visits complete worklist nodes.
Unlike resource refusal inside Self::solve, this cooperative boundary
snapshots only between nodes, so resumption never repeats callbacks or
presents a shortened event stream as complete.
pub fn resume<N, E, L, C, S, P>(
graph: &DataflowGraph<N, E, L, C>,
transfer: &AdmittedTransfer<P>,
bottom: &S,
seeds: impl IntoIterator<Item = (N, S)>,
continuation: DataflowContinuation<N, E, C, S>,
max_visits: usize,
) -> DataflowProgressResult<N, E, L, C, S>
pub fn resume<N, E, L, C, S, P>( graph: &DataflowGraph<N, E, L, C>, transfer: &AdmittedTransfer<P>, bottom: &S, seeds: impl IntoIterator<Item = (N, S)>, continuation: DataflowContinuation<N, E, C, S>, max_visits: usize, ) -> DataflowProgressResult<N, E, L, C, S>
Resumes a content-bound snapshot, refusing every changed input identity.
Trait Implementations§
Source§impl Clone for FixpointEngine
impl Clone for FixpointEngine
Source§fn clone(&self) -> FixpointEngine
fn clone(&self) -> FixpointEngine
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more