Computable2Guarded's entry point β π_DβG := π_reord β π_flat β π_par β π_cflow, matching the
<InputType>.<verb> convention the other passes use. π_cflow/π_par run first, both
whole-Algorithm rewrites within ComputablePlusCal's own type (their order doesn't matter);
only then does the merged π_flat/π_reord walk change shape, applied per (label, Block) pair
across every thread of every process. Declarations/Process/Algorithm's outer shape is
otherwise a plain structural copy β ComputablePlusCal's Typ/Expression and this pass's own
pinning of GuardedPlusCal's are the identical types, so only threads genuinely changes shape.
Declarations is still a distinct (if identically-shaped) structure between the two namespaces,
so Declarations.toGuarded below is a one-line field-for-field repackaging, not a real
translation.
ElaboratedPlusCal.Declarations and GuardedPlusCal.Declarations share every field's name
and type (see the module doc above) β this only exists because they're nominally distinct
structures, not because anything actually needs converting.
Instances For
Equations
- One or more equations did not get rendered due to their size.