A second extension of generalization is by enumerating the occurring values in a finite domain term instead of replacing them by a variable. A logic programming extension with finite domain terms is presented in [\protect\citeauthoryearBoley1994]. In this case anti-unification of and results in the literal

where the second term is the finite domain containing both original constantsadditive(ppn_1060,dom[flame-retardent,fluent])

with two finite domains really represents four facts, which we get by combining each value of the first with each of the second domain. In addition to the two original clauses we get that novoduradditive(dom[ppn_1060,r_5320],dom[flame-retardent,fluent])