Experimental/internal API for 0.2; subject to change before 0.3. Metadata for an equation lemma generated from compiled equations.
Summary
Functions
Kernel-checks and installs many equation lemmas as opaque theorem declarations.
Kernel-checks and installs generated equation lemmas for a supported definition.
Kernel-checks and installs equation-lemma metadata as an opaque theorem declaration.
Turns equation-lemma metadata into a native definitional-equality validation check.
Turns many equation lemmas into native definitional-equality validation checks.
Builds equation-lemma metadata named after a compiled definition.
Generates equation lemmas from stored equation schema metadata.
Builds equation-lemma metadata.
Kernel-checks equation-lemma metadata as an anonymous generated equation artifact.
Returns the Lean-style theorem name for a definition equation.
Kernel-checks equation-lemma metadata as a theorem using reflexivity.
Generates an unfolding equation lemma for a stored equation definition.
Types
@type binder() :: {atom(), Theoria.Term.t()}
@type t() :: %Theoria.Equation.Lemma{ binders: [binder()], equality_type: Theoria.Term.t() | nil, identity: Theoria.Equation.Identity.t() | nil, left: Theoria.Term.t(), name: atom() | Theoria.Equation.Identity.t(), right: Theoria.Term.t(), source: Theoria.Equation.Clause.t() | nil }
Functions
@spec add_all_to_env(Theoria.Env.t(), [t()], Theoria.Term.t() | keyword(), keyword()) :: {:ok, Theoria.Env.t(), [Theoria.Theorem.t()]} | {:error, Theoria.Error.t()}
Kernel-checks and installs many equation lemmas as opaque theorem declarations.
@spec add_generated_to_env( Theoria.Env.t(), atom() | Theoria.Equation.Info.t(), keyword() ) :: {:ok, Theoria.Env.t(), [Theoria.Theorem.t()]} | {:error, term()}
Kernel-checks and installs generated equation lemmas for a supported definition.
@spec add_to_env(Theoria.Env.t(), t(), Theoria.Term.t() | keyword(), keyword()) :: {:ok, Theoria.Env.t(), Theoria.Theorem.t()} | {:error, Theoria.Error.t()}
Kernel-checks and installs equation-lemma metadata as an opaque theorem declaration.
@spec defeq_check(t(), atom()) :: Theoria.Validation.DefeqCheck.t()
Turns equation-lemma metadata into a native definitional-equality validation check.
@spec defeq_checks(atom(), [t()]) :: [Theoria.Validation.DefeqCheck.t()]
Turns many equation lemmas into native definitional-equality validation checks.
@spec for_definition( Theoria.Equation.Info.t(), atom(), Theoria.Term.t(), Theoria.Term.t(), keyword() ) :: t()
Builds equation-lemma metadata named after a compiled definition.
@spec generated_for( Theoria.Equation.Info.t(), keyword() ) :: [t()]
Generates equation lemmas from stored equation schema metadata.
@spec new( atom() | Theoria.Equation.Identity.t(), Theoria.Term.t(), Theoria.Term.t(), keyword() ) :: t()
Builds equation-lemma metadata.
@spec realize(Theoria.Env.t(), t(), Theoria.Term.t() | keyword(), keyword()) :: {:ok, Theoria.Equation.Realized.t()} | {:error, Theoria.Error.t()}
Kernel-checks equation-lemma metadata as an anonymous generated equation artifact.
@spec theorem_name(atom(), atom()) :: Theoria.Equation.Identity.t()
Returns the Lean-style theorem name for a definition equation.
@spec to_theorem(Theoria.Env.t(), t(), Theoria.Term.t() | keyword(), keyword()) :: {:ok, Theoria.Theorem.t()} | {:error, Theoria.Error.t()}
Kernel-checks equation-lemma metadata as a theorem using reflexivity.
@spec unfold_for(Theoria.Equation.Info.t()) :: t()
Generates an unfolding equation lemma for a stored equation definition.