“…Higher-order pattern unification, the foundation of Isabelle [Paulson, 1986], λProlog [Nadathur et al, 1988], and Twelf [Pfenning and Schürmann, 1999], handles a fragment of the βη-rules. Nominal unification, the unification modulo the α-rule, has inspired extensions of logic programming languages such as αProlog [Cheney and Urban, 2004] and αKanren [Byrd and Friedman, 2007], as well as theorem provers such as Nominal Isabelle [Urban and Tasson, 2005] and αLeanTAP [Near et al, 2008]. Although these two theories can be reduced to one another [Cheney, 2005, Levy andVillaret, 2012], implementing higher-order pattern unification is more complicated because it has to deal with β-reduction and capture-avoiding substitution.…”