aboutsummaryrefslogtreecommitdiff
path: root/include/atp/infer/unification.h
diff options
context:
space:
mode:
authorRichard Qin <richard.qin.x@gmail.com>2026-04-03 14:21:40 +0800
committerRichard Qin <richard.qin.x@gmail.com>2026-04-03 14:21:40 +0800
commit469ed26e90ef96e44764938c7cdddfb271f272c4 (patch)
tree7ac16c9cae45dd5ffafe62f31ee3e65c595c6f2f /include/atp/infer/unification.h
parent9ab592ce3765d07b6dbdb9c1d9b62dc8045e784e (diff)
downloadratp-469ed26e90ef96e44764938c7cdddfb271f272c4.tar.gz
ratp-469ed26e90ef96e44764938c7cdddfb271f272c4.tar.xz
feat: implement substitution logic and unify/applySubstitution functions for term resolution
Diffstat (limited to 'include/atp/infer/unification.h')
-rw-r--r--include/atp/infer/unification.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/atp/infer/unification.h b/include/atp/infer/unification.h
index 7d91aaf..f2ea180 100644
--- a/include/atp/infer/unification.h
+++ b/include/atp/infer/unification.h
@@ -37,4 +37,8 @@ struct UnificationConfig {
bool unify(const TermBank& bank, TermId t1, TermId t2, Substitution& subst,
const UnificationConfig& config = {});
+/// Apply a substitution to a term recursively, creating new terms in the bank.
+/// Free (unbound) variables are left unchanged.
+TermId applySubstitution(const Substitution& subst, TermId term, TermBank& bank);
+
} // namespace atp