Definition
The process of finding substitutions for variables that make two syntactic expressions (terms) identical according to the term algebra of a logic; outputs a substitution mapping variables to terms when one exists.

Principle

Principle
Solve a finite set of term equations by repeatedly decomposing compound terms, orienting variable equalities, applying an occurs-check to avoid cyclic substitutions, and computing the most general unifier when possible.

Demonstration

Demonstration
Unifying f(x, a) and f(b, y) yields the substitution {x ↦ b, y ↦ a}. In first-order resolution, unification is used to make literals syntactically identical before applying the resolution rule.

Misapplication

Misapplication
Omitting the occurs-check and accepting substitutions like x ↦ f(x) produces cyclic or ill-founded terms; or assuming unification always yields a unique substitution even in theories or higher-order settings where multiple incomparable unifiers or none may exist.

Consequence

Consequence
When applied correctly, unification provides the substitutions needed for automated theorem proving, logic programming, and type inference; the most general unifier preserves maximal generality, enabling reuse and composing proofs or programs.

Reversal

Reversal
The inverse notion is anti-unification (generalization), which finds the least general generalization of two terms rather than a substitution making them equal; conceptually, reversal shifts from solving equations to finding common structure.

Boundary

Boundary
Standard (first-order) unification assumes a syntactic term algebra without built-in theories; it excludes equational or theory unification (e.g., modulo associativity or commutativity) and higher-order unification unless explicitly specified, each of which has different algorithms and decidability properties.

Semantic Tension

Semantic Tension
Tension arises between unification and pattern matching: matching fixes one side as a pattern to instantiate, yielding specialized one-way substitutions, whereas unification is symmetric and may return more general substitutions; another tension is between syntactic and equational unification (theory-sensitive).

Synthesis

Synthesis
Unification is an algorithmic solver for syntactic term equations: by decomposing structures, enforcing occurrence constraints, and computing most general unifiers, it supplies the substitutions that enable variable instantiation in inference, programming, and type-checking.