Abstract
In [1], Kerby discuss abstraction by converting expressions containg concatenative combinators to lambda expressions with variables and then proceeds by abstracting variables from the lambda expressions.
This article follows a more direct approach and provides abstraction rules that are aimed to make the algorithm easier to apply and implement.
Even if we are mostly interested in showing that such algorithm exists we have made an effort to choose a base of combinators that will keep the resulting expression as short as possible (abstraction usually leads to very long and complex expressions). Further improvements can be done while implementing the algorithm, but we won't discuss them here.
Expressions
The language of concatenative combinators is defined by the following EBNF: