Kernel environment containing checked constants and definitions.
Summary
Functions
Returns declaration names in insertion order.
Returns matcher declarations in insertion order.
Types
@type t() :: %Theoria.Env{ constants: %{required(name()) => Theoria.Env.Constant.t()}, declarations: [name()] }
Functions
Returns declaration names in insertion order.
@spec fetch(t(), name()) :: {:ok, Theoria.Env.Constant.t()} | :error
@spec fetch_constructor(t(), atom()) :: {:ok, Theoria.Env.Constructor.t()} | :error
@spec fetch_inductive(t(), atom()) :: {:ok, Theoria.Env.Inductive.t()} | :error
@spec fetch_matcher(t(), atom()) :: {:ok, Theoria.Env.Matcher.t()} | :error
@spec fetch_recursor(t(), atom()) :: {:ok, Theoria.Env.Recursor.t()} | :error
@spec matchers(t()) :: [Theoria.Env.Matcher.t()]
Returns matcher declarations in insertion order.
@spec new() :: t()
@spec put_axiom(t(), atom(), Theoria.Term.t(), [atom()]) :: t()
@spec put_definition( t(), atom(), Theoria.Term.t(), Theoria.Term.t(), [atom()], keyword() ) :: t()
@spec put_matcher( t(), atom(), Theoria.Term.t(), Theoria.Term.t(), [atom()], Theoria.Env.Matcher.t() ) :: t()
@spec put_theorem(t(), atom(), Theoria.Term.t(), Theoria.Term.t(), [atom()]) :: t()