File: is_binary.doc

package info (click to toggle)
hol-light 20190729-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 42,676 kB
  • sloc: ml: 637,078; cpp: 439; makefile: 301; lisp: 286; java: 279; sh: 239; yacc: 108; perl: 78; ansic: 57; sed: 39; python: 13
file content (32 lines) | stat: -rw-r--r-- 703 bytes parent folder | download | duplicates (6)
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
28
29
30
31
32
\DOC is_binary

\TYPE {is_binary : string -> term -> bool}

\SYNOPSIS
Tests if a term is an application of a named binary operator.

\DESCRIBE
The call {is_binary s tm} tests if term {tm} is an instance of a binary
operator {(op l) r} where {op} is a constant with name {s}. If so, it returns
true; otherwise it returns false. Note that {op} is required to be a constant.

\FAILURE
Never fails.

\EXAMPLE
This one succeeds:
{
  # is_binary "+" `1 + 2`;;
  val it : bool = true
}
\noindent but this one fails unless {f} has been declared a constant:
{
  # is_binary "f" `f x y`;;
  Warning: inventing type variables
  val it : bool = false
}

\SEEALSO
dest_binary, is_binop, is_comb, mk_binary.

\ENDDOC