File: strip_abs.doc

package info (click to toggle)
hol-light 20120602-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 23,452 kB
  • sloc: ml: 348,797; cpp: 438; java: 279; makefile: 252; sh: 183; yacc: 108; perl: 78; ansic: 57; sed: 39
file content (27 lines) | stat: -rw-r--r-- 500 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
\DOC strip_abs

\TYPE {strip_abs : term -> term list * term}

\SYNOPSIS
Iteratively breaks apart abstractions.

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

\FAILURE
Never fails.

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

\SEEALSO
list_mk_abs, dest_abs.

\ENDDOC