File: mk_binder.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-- 742 bytes parent folder | download | duplicates (4)
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 mk_binder

\TYPE {mk_binder : string -> term * term -> term}

\SYNOPSIS
Constructs a term with a named constant applied to an abstraction.

\DESCRIBE
The call {mk_binder "c" (x,t)} returns the term {c (\x. t)} where {c} is a 
constant with the given name appropriately type-instantiated. Note that the 
binder parsing status of {c} is irrelevant, though only if it is parsed as a 
binder will the resulting term be printed and parseable as {c x. t}.
 
\FAILURE
Failus if {x} is not a variable, if there is no constant {c} or if the type of 
that constant cannot be instantiated to match the abstraction.

\EXAMPLE
{
  # mk_binder "!" (`x:num`,`x + 1 > 0`);;
  val it : term = `!x. x + 1 > 0`
}

\SEEALSO
dest_binder, is_binder.

\ENDDOC