mod compile;
mod eval;
mod limits;
mod planner_shadow;
mod program;
mod qf_bv;
mod schedule;
mod schedule_circuit;
mod shadow;
mod validate;
pub use compile::{
compile_admission, compile_budget_detail, compile_budget_membrane, compile_conflict_membrane,
compile_evidence_membrane, compile_profile_drift_membrane, compile_support_membrane,
compose_membranes, AdmissionShape, CircuitBuilder,
};
pub use eval::{evaluate, Decision, EvalError, Lane};
pub use limits::{LimitViolation, ProgramLimits, FROZEN_LIMITS};
pub use planner_shadow::{planner_reference, planner_shadow_check, PlannerInputs};
pub use program::{
AdmissionProgram, CertNode, CompareRel, InputDecl, InputSlot, LookupTable, Node, NodeId,
NodeOp, Outputs, ProgramCertificate, ProgramError, Width, ADMISSION_PROGRAM_SCHEMA_VERSION,
MAX_WIDTH,
};
pub use qf_bv::{
budget_membrane_equivalence_smt, budget_planted_disagreement_smt, smt_digest, translate,
verify_receipt, ProofGateError, ProofReceipt, ProofStatus, QfBvError, TranslatedCircuit,
ADMISSION_CIRCUIT_PROOF,
};
pub use schedule::{
reference_schedule_admission, schedule_refusal, PrimitiveDeclInputs, ScheduleInputs,
ScheduleOutcome, ScheduleRefusal, ScheduleSlotInputs, MAX_PRIMITIVES,
};
pub use schedule_circuit::{
compile_schedule_membrane, schedule_shadow_check, shape_of, ScheduleDivergence, ScheduleShape,
};
pub use shadow::{
reference_admission, shadow_check, AdmissionDivergence, AdmissionInputs, AdmissionOutcome,
BudgetInputs, RequirementInputs,
};
pub use validate::{
decode_validated, validate, verify_certificate, ValidationError, MAX_LOOKUP_ENTRIES,
};