Theoria's rewrite and simp engines are untrusted search/construction helpers. A proof-producing step is accepted only when the generated core proof checks with the native kernel.

Capability reports describe which structural paths currently have proof construction support. The matrix is path-oriented, while actual rewrite-step diagnostics are parent-term aware.

Supported paths

PathCapabilityNotes
[]:top_levelUses the rule proof directly.
[:arg], [:fun]:application_congruenceApplication congruence. Nested application paths are supported when every segment is :arg or :fun.
[:left], [:right]:equality_sideEquality-side transport.
[:base]:eq_rec_base_congruenceEqRec base congruence.
[:proof]:eq_rec_proof_congruenceEqRec proof congruence; this does not assume proof irrelevance.
[:base, ...], [:proof, ...]outer EqRec capability with innerSupported when the nested path is itself supported.
[:value]:value_congruenceStep-aware support for implemented constructor-value transports, currently let values.

Nested capability JSON may contain an inner capability:

{
  "supported": true,
  "reason": "eq_rec_base_congruence",
  "description": "EqRec base congruence",
  "inner": {
    "supported": true,
    "reason": "application_congruence",
    "description": "application congruence",
    "inner": null
  }
}

Current boundaries

PathBoundary
[:domain], [:body]Binder paths need context-sensitive transport.
[:type] under equality/let/EqRecType-changing transport is not generalized yet.
[:motive] under EqRecMotive transport is not supported.
non-definitional Refl.valueReported as :refl_value_boundary; homogeneous equality alone is not enough to rewrite proof types safely without stronger typed transport.

Unsupported paths are deliberate boundaries, not trusted failures. The caller can still inspect the rewritten term, but no proof is trusted unless Theoria.Kernel.check/3 accepts it.

CLI

mix theoria.simp --capabilities
mix theoria.simp --capabilities --json

Theoria.Simp.Result.proof_status_counts/1 summarizes checked/missing/unsupported step proofs for a simplification trace.