In predicate logic, flattening can be used to replace terms with functions by variables.
It can also be used for expressing absorption in inverse resolution. This has been done by
Rouveirol and Puget. In this article three kinds of absorption algorithms are compared