File: UNWIND_CONV.doc

package info (click to toggle)
hol-light 20131026-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 26,264 kB
  • ctags: 4,620
  • sloc: ml: 400,325; cpp: 438; java: 279; lisp: 261; makefile: 256; sh: 190; yacc: 108; perl: 78; ansic: 57; sed: 39
file content (37 lines) | stat: -rw-r--r-- 948 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
28
29
30
31
32
33
34
35
36
37
\DOC UNWIND_CONV

\TYPE {UNWIND_CONV : term -> thm}

\SYNOPSIS
Eliminates existentially quantified variables that are equated to something.

\KEYWORDS
conversion.

\DESCRIBE
The conversion {UNWIND_CONV}, applied to a formula with one or more existential
quantifiers, eliminates any existential quantifiers where the body contains a
conjunct equating its variable to some other term (with that variable not free
in it).

\FAILURE
{UNWIND_CONV tm} fails if {tm} is not reducible according to that description.

\EXAMPLE
{
  # UNWIND_CONV `?a b c d. b = 7 /\ 2 = d /\ a + b + c + d = 97`;;
  val it : thm =
    |- (?a b c d. b = 7 /\ 2 = d /\ a + b + c + d = 97) <=>
       (?a c. a + 7 + c + 2 = 97)

  # UNWIND_CONV `?w x y z. w = z /\ x = 1 /\ x + y = z /\ y = 42`;;
  val it : thm = |- (?w x y z. w = z /\ x = 1 /\ x + y = z /\ y = 42) <=> T

  # UNWIND_CONV `x = 2`;;
  Exception: Failure "CHANGED_CONV".
}

\SEEALSO
FORALL_UNWIND_CONV.

\ENDDOC