pub fn reduce_epistemic_program_to_ordinary(
program: &Program,
) -> Result<Program>Expand description
Return the ordinary runtime program selected by epistemic dependency classification.
Admissible ordinary or modal dependency cycles resolve their modal edges into an ordinary fixpoint program. Acyclic programs use the single-pass reduction; callers must validate its explicit epistemic GPU contract before execution.
The augmenting positive-modal resolve is gated on INVARIANT targets only (see the
body comment): for an invariant R, know R/possible R ranges exactly over
R’s extension, so resolving the modal into an ordinary join binds the augmented
output column WITHOUT leaking — and the GPU membership filter re-gates
post hoc. A determined-but-not-invariant target (an epistemic-derived head like a
multi-column r) is NOT resolved here, so its augmenting output variable stays
unbound and the reduced program fails closed at this strict (execution) entry
point. See reduce_epistemic_program_to_ordinary_for_stratified_schema for the
schema-only relaxation used by the stratified driver.