Documentation

WellFormedness.WellScoped.CorePlusCal

CorePlusCal.WellScoped, a Prop. Same scope-class shape as the executable check (TypedPlusCal.Algorithm.checkWellScoped), stated over the pre-Elaborator CorePlusCal.Algorithm: it is the form a preservation lemma is stated against, not something the executable check invokes.

Every name a Declarations value binds — the Prop-side counterpart of TypedPlusCal.Declarations.namesWithPos, with no position (irrelevant to a Prop).

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    partial def CorePlusCal.Statement.WellScopedIn {α β : Type} {b : Bool} (inScope : List String) :
    Statement α β bProp

    s introduces no shadowing/duplicate name, given inScope already holds — the Prop counterpart of TypedPlusCal.Statement.checkWellScoped.

    partial def CorePlusCal.Block.WellScopedIn {α β : Type} {b : Bool} (inScope : List String) (B : Block α β b) :
    partial def CorePlusCal.Branches.WellScopedIn {α β : Type} {b : Bool} (inScope : List String) :
    Branches α β bProp
    def CorePlusCal.WellScoped {α β : Type} (algo : Algorithm α β) :

    p has no duplicate name in any scope, and no name shadows an enclosing scope's — the Prop counterpart of TypedPlusCal.Algorithm.checkWellScoped, over the pre-Elaborator CorePlusCal.Algorithm.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For