Experimental/internal API for 0.2; subject to change before 0.3. A theorem-like rewrite rule over a core equality term.
Summary
Functions
Builds a rewrite rule from equation-lemma metadata.
Builds a rewrite rule from a realized equation artifact.
Builds a rewrite rule from equation-lemma metadata, realizing it first when requested.
Builds a rewrite rule.
Realizes a lazy proof-backed rewrite rule.
Types
@type t() :: %Theoria.Rewrite.Rule{ binders: [Theoria.Equation.Lemma.binder()], direction: :forward | :backward, equality: Theoria.Term.Eq.t(), identity: Theoria.Equation.Identity.t() | nil, name: atom() | Theoria.Equation.Identity.t(), proof: Theoria.Term.t() | nil, realize: false | true | :lazy, realized: Theoria.Equation.Realized.t() | nil, source_lemma: Theoria.Equation.Lemma.t() | nil }
Functions
@spec from_lemma(Theoria.Equation.Lemma.t(), Theoria.Term.t() | keyword(), keyword()) :: t()
Builds a rewrite rule from equation-lemma metadata.
@spec from_realized(Theoria.Equation.Realized.t()) :: t()
Builds a rewrite rule from a realized equation artifact.
@spec from_realizing_lemma(Theoria.Env.t(), Theoria.Equation.Lemma.t(), keyword()) :: t()
Builds a rewrite rule from equation-lemma metadata, realizing it first when requested.
@spec new(atom() | Theoria.Equation.Identity.t(), Theoria.Term.Eq.t(), keyword()) :: t()
Builds a rewrite rule.
@spec realize(Theoria.Env.t(), t(), keyword()) :: t()
Realizes a lazy proof-backed rewrite rule.