Availability:built-in
[det]size_abstract_term(+Size, 
+Term, -Abstract)The size of a term is defined as the number of compound subterms (function 
symbols) that appear in term. Abstract is an abstract 
copy of Term where each argument is abstracted by copying 
only the first Size function symbols and constants. Excess 
function symbols are replaced by fresh variables.
This predicate is a helper for tabling where Term is the
ret/N answer skeleton that is added to the
answer table. Examples:
| Size | Term | Abstract | 
| 0 | ret(f(x), a) | ret(_, 
a) | 
| 1 | ret(f(x), a) | ret(f(x), a) | 
| 1 | ret(f(A), a) | ret(f(A), a) | 
| 1 | ret(f(x), x(y(Z))) | ret(f(x), 
x(_)) |