Inspecting compiled semantics
No matching nodes
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar needs more MAP space.
What happens, in order, when poly check runs on a machine?
A check has to be cheap to trust. The pipeline's order is the argument: no engine explores a module that poly-ref has not already shown to mean what the source says, so a finding from an engine is a finding about the program and not about the lowering.
The CLI hands a target to the pipeline. Stage 0 parses the source with poly-lang and runs the type and domain checks in poly-core. A refusal here stops the machine and the later stages are listed as not run, with the reason.
A checked machine is lowered. sam-pattern then validates the lowered module against the strict profile. Only after that does poly-ref run translation validation: it executes the lowered module and its own reading of the semantics on every reachable state and refuses any difference (PL2501).
Now polygraph explores the module for invariants. Its findings are not taken on its word. The pipeline asks poly-ref to confirm each witness against the checked instance, and a finding that leaves the instance becomes a bound hit and not a finding. poly-ref also decides deadlock freedom and liveness, which no engine checks.
The report returns to the CLI with a verdict, the diagnostics and witnesses. A stage that did not run is listed as not run and never lowers the verdict.