Flattening, generalizations of clauses and absorption algorithms