One structural rewrite application with the matched path and optional proof data.
Summary
Types
@type path_segment() :: atom()
@type t() :: %Theoria.Rewrite.Step{ after: Theoria.Term.t(), before: Theoria.Term.t(), path: [path_segment()], proof_result: Theoria.Rewrite.Proof.Result.t() | nil, rule: Theoria.Rewrite.Rule.t(), substitution: Theoria.Rewrite.Match.substitution() | nil }