File: CHAR_EQ_CONV.doc

package info (click to toggle)
hol-light 20170109-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 36,568 kB
  • ctags: 8,549
  • sloc: ml: 540,018; cpp: 439; lisp: 286; java: 279; makefile: 262; sh: 229; yacc: 108; perl: 78; ansic: 57; sed: 39
file content (43 lines) | stat: -rw-r--r-- 1,144 bytes parent folder | download | duplicates (2)
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
33
34
35
36
37
38
39
40
41
42
43
\DOC CHAR_EQ_CONV

\TYPE {CHAR_EQ_CONV : term -> thm}

\SYNOPSIS
Proves equality or inequality of two HOL character literals.

\DESCRIBE
If {s} and {t} are two character literal terms in the HOL logic,
{CHAR_EQ_CONV `s = t`} returns:

{
   |- s = t <=> T       or       |- s = t <=> F
}
\noindent depending on whether the character literals are equal or not equal,
respectively.

\FAILURE
{CHAR_EQ_CONV tm} fails f {tm} is not of the specified form, an equation 
between character literals.

\EXAMPLE
{
  # let t = mk_eq(mk_char 'A',mk_char 'A');;
  val t : term = `ASCII F T F F F F F T = ASCII F T F F F F F T`
  
  # CHAR_EQ_CONV t;;
  val it : thm = |- ASCII F T F F F F F T = ASCII F T F F F F F T <=> T
}

\USES
Performing basic equality reasoning while producing a proof about characters.

\COMMENTS
There is no particularly convenient parser/printer support for the HOL {char} 
type, but when combined into lists they are considered as strings and provided 
with more intuitive parser/printer support. There is a corresponding proof rule
{STRING_EQ_CONV} for strings.

\SEEALSO
dest_char, mk_char, NUM_EQ_CONV, STRING_EQ_CONV.

\ENDDOC