VC Spec Intermediate Representation #
Tactic-level intermediate representation used to classify program-logic
specification rules for diagnostic messages, registry bookkeeping, and
structural candidate filtering. The discrimination-tree indexing itself lives
in Registry.lean and operates on Lean.Meta.Sym.Pattern; the IR defined
here is a light-weight summary attached to each @[vcspec] entry.
Broad category of a @[vcspec] rule, derived from the head of the
theorem's statement (Triple, wp, RelTriple, RelWP).
- unaryTriple : VCSpecKind
- unaryWP : VCSpecKind
- relTriple : VCSpecKind
- relWP : VCSpecKind
Instances For
Instances For
Coarse lookup shape used to route a rule into the right discrimination tree partition (unary vs relational) at registration time.
- unary (head : Lean.Name) : VCSpecLookupKey
- relational (leftHead rightHead : Lean.Name) : VCSpecLookupKey
Instances For
Instances For
Instances For
Outer syntactic shape of a single oracle computation slot of a
@[vcspec] rule. Used for coarse secondary filtering when the
discrimination tree returns multiple candidates.
- bind : VCSpecCompForm
- pure : VCSpecCompForm
- ite : VCSpecCompForm
- map : VCSpecCompForm
- replicate : VCSpecCompForm
- listMapM : VCSpecCompForm
- listFoldlM : VCSpecCompForm
- query : VCSpecCompForm
- simulateQ : VCSpecCompForm
- other : VCSpecCompForm
Instances For
Instances For
Instances For
Combined comp-form of a rule's computation slot(s). Unary rules record a single form; relational rules record both sides.
- unary (form : VCSpecCompForm) : VCSpecCompPattern
- relational (leftForm rightForm : VCSpecCompForm) : VCSpecCompPattern
Instances For
Instances For
Instances For
Normalized summary of a @[vcspec] rule attached to every registered
entry. The discrimination tree is the primary index; this summary powers
kind-filtered iteration helpers and structural-compatibility scoring in
the planner.
- kind : VCSpecKind
- lookupKey : VCSpecLookupKey
- compPattern : VCSpecCompPattern