aboutsummaryrefslogtreecommitdiff
path: root/proofsearch/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
commitdf6c2f124fce4cecd42da806a003afdf3a922c09 (patch)
tree9578ecd7b2585d164970366bf6f45cb37f8c4cf3 /proofsearch/include/atp/infer/unification.h
parent52ff8a1695a2cc5157b98d4e71b05d7ea58bb97a (diff)
downloadrcc-project-df6c2f124fce4cecd42da806a003afdf3a922c09.tar.gz
rcc-project-df6c2f124fce4cecd42da806a003afdf3a922c09.tar.xz
feat: implement substitution logic and unify/applySubstitution functions for term resolution
Diffstat (limited to 'proofsearch/include/atp/infer/unification.h')
-rw-r--r--proofsearch/include/atp/infer/unification.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/proofsearch/include/atp/infer/unification.h b/proofsearch/include/atp/infer/unification.h
index 7d91aaf..f2ea180 100644
--- a/proofsearch/include/atp/infer/unification.h
+++ b/proofsearch/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