File: EXISTS_UPPERCASE.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 (39 lines) | stat: -rw-r--r-- 981 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
33
34
35
36
37
38
39
\DOC EXISTS

\TYPE {EXISTS : term * term -> thm -> thm}

\SYNOPSIS
Introduces existential quantification given a particular witness.

\KEYWORDS
rule, existential.

\DESCRIBE
When applied to a pair of terms and a theorem, the first term an existentially
quantified pattern indicating the desired form of the result, and the second a
witness whose substitution for the quantified variable gives a term which is
the same as the conclusion of the theorem, {EXISTS} gives the desired theorem.
{
    A |- p[u/x]
   -------------  EXISTS (`?x. p`,`u`)
    A |- ?x. p
}
\FAILURE
Fails unless the substituted pattern is the same as the conclusion of the
theorem.

\EXAMPLE
The following examples illustrate how it is possible to deduce different
things from the same theorem:
{
  # EXISTS (`?x. x <=> T`,`T`) (REFL `T`);;
  val it : thm = |- ?x. x <=> T

  # EXISTS (`?x:bool. x = x`,`T`) (REFL `T`);;
  val it : thm = |- ?x. x <=> x
}

\SEEALSO
CHOOSE, EXISTS_TAC, SIMPLE_EXISTS.

\ENDDOC