Status: canonical
PLIB-216/#3731reference record, updated 2026-03-16 after landing bounded publiccheckpointandvmapcapability alongside the original program-transform matrix incrates/psionic-ir/src/lib.rs.
This document records the current bounded program-transform semantics surface for Psionic.
Run the transform harness from the repo root:
scripts/release/check-psionic-program-transform-capability.shpsionic-ir now exposes:
ProgramTransformFamilyProgramTransformCapabilityOutcomeProgramTransformCapabilityCaseResultProgramTransformCapabilityMatrixReportGraph::program_transform_capability(...)builtin_program_transform_capability_matrix_report()
Today Psionic has a first-class program-transform capability surface, but it does not claim broad higher-order transform closure.
The bounded seeded surface now makes these seams explicit:
- functionalization over graphs with explicit alias-root and barrier reporting
- symbolic-rewrite readiness over functionalized graphs
- export-safe graph handoff under
export_safe_onlypolicy - public
checkpointover densef32primitive graphs with explicit cast and backend-extension refusal - public
vmapover densef32single-lane graphs with explicit cast and backend-extension refusal - public
jvpover densef32primitive graphs with explicit cast and backend-extension refusal - explicit future posture for
jacobian
This matrix prevents two failure modes:
- claiming transform support based only on internal functionalization helpers
- implying broader transform closure because one graph happens to be "transform-safe"
The point of this issue is to make transform capability machine-legible so export, extension, and deployment work can build on one honest contract.