Builds kernel-checked equality artifacts for rewrite/simp traces.
Summary
Functions
Starts an equality chain at a term of the given type.
Realizes the chain as a checked equality artifact.
Appends one equality step to the chain.
Types
@type step() :: %{after: Theoria.Term.t(), proof: Theoria.Term.t() | nil}
@type t() :: %Theoria.Equality.Chain{ current: Theoria.Term.t(), start: Theoria.Term.t(), steps: [step()], type: Theoria.Term.t() }
Functions
@spec new(Theoria.Term.t(), Theoria.Term.t()) :: t()
Starts an equality chain at a term of the given type.
@spec realize(Theoria.Env.t(), t(), Theoria.Equation.Identity.t()) :: {:ok, Theoria.Equation.Realized.t()} | {:error, term()}
Realizes the chain as a checked equality artifact.
@spec step(t(), Theoria.Term.t(), Theoria.Term.t() | nil) :: t()
Appends one equality step to the chain.