Documentation

Core.CoreTLAPlus.Syntax

The desugared core syntax of TLA⁺ expressions — the output of desugaring, and the language the type checker and everything downstream actually works against.

Relative to SurfaceTLAPlus.Expression:

inductive CoreTLAPlus.Expression (α : Type) :

TLA⁺ expressions after desugaring. α carries whatever comment-annotation payload the binders (quantifiers, LET in the future, record fields, …) need.

Instances For
    @[implicit_reducible]
    instance CoreTLAPlus.instReprExpression {α✝ : Type} [Repr α✝] :
    Equations
    partial def CoreTLAPlus.instReprExpression.repr {α✝ : Type} [Repr α✝] :
    Expression α✝Std.Format
    @[implicit_reducible]
    instance CoreTLAPlus.instBEqExpression {α✝ : Type} [BEq α✝] :
    BEq (Expression α✝)
    Equations
    partial def CoreTLAPlus.instBEqExpression.beq {α✝ : Type} [BEq α✝] :
    Expression α✝Expression α✝Bool
    partial def CoreTLAPlus.Expression.map {α β : Type} (f : αβ) (e : Expression α) :
    partial def CoreTLAPlus.Expression.traverse {F : TypeType} [Applicative F] {α β : Type} (f : αF β) (e : Expression α) :
    F (Expression β)
    @[reducible, inline]

    A top-level TLA⁺ declaration. RECURSIVE and module INSTANCE are not represented.

    Equations
    Instances For
      @[reducible, inline]
      abbrev CoreTLAPlus.Module (α β : Type) :

      A desugared TLA⁺ module, wrapping the embedded (still-Surface, not-yet-desugared-at-the- statement-level) PlusCal algorithm at whatever α the caller instantiates it at — kept abstract to avoid a cyclic import.

      Equations
      Instances For