Documentation

Cslib.Languages.LambdaCalculus.LocallyNameless.Context

λ-calculus #

Contexts as pairs of free variables and types.

@[reducible, inline]
abbrev Cslib.LambdaCalculus.LocallyNameless.Context (α : Type u) (β : Type v) :
Type (max v u)

A typing context is a list of free variables and corresponding types.

Equations
Instances For

    The domain of a context is the finite set of free variables it uses.

    Equations
    Instances For
      def Cslib.LambdaCalculus.LocallyNameless.Context.map_val {α : Type u} {β : Type v} (f : ββ) (Γ : Context α β) :
      Context α β

      A mapping of values within a context.

      Equations
      Instances For
        theorem Cslib.LambdaCalculus.LocallyNameless.Context.map_val_keys {α : Type u} {β : Type v} {Γ : Context α β} (f : ββ) :

        A mapping of values preserves keys.

        theorem Cslib.LambdaCalculus.LocallyNameless.Context.map_val_mem {α : Type u} {β : Type v} [DecidableEq α] {Γ : Context α β} {x : α} {σ : β} (mem : σ List.dlookup x Γ) (f : ββ) :
        f σ List.dlookup x (map_val f Γ)

        A mapping of values maps lookups.