strip_abs : term -> term list * term

SYNOPSIS
Iteratively breaks apart abstractions.

DESCRIPTION
strip_abs `\x1 ... xn. t` returns ([`x1`;...;`xn`],`t`). Note that
   strip_abs(list_mk_abs([`x1`;...;`xn`],`t`))
will not return ([`x1`;...;`xn`],`t`) if t is an abstraction.

FAILURE CONDITIONS
Never fails.

EXAMPLE
  # strip_abs `\x y z. x /\ y /\ z`;;
  val it : term list * term = ([`x`; `y`; `z`], `x /\ y /\ z`)

SEE ALSO
list_mk_abs, dest_abs.