File: SELECT_RULE.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 (43 lines) | stat: -rw-r--r-- 1,050 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
38
39
40
41
42
43
\DOC SELECT_RULE

\TYPE {SELECT_RULE : thm -> thm}

\SYNOPSIS
Introduces an epsilon term in place of an existential quantifier.

\KEYWORDS
rule, epsilon.

\DESCRIBE
The inference rule {SELECT_RULE} expects a theorem asserting the
existence of a value {x} such that {P} holds.  The equivalent assertion
that the epsilon term {@x.P} denotes a value of {x} for
which {P} holds is returned as a theorem.
{
       A |- ?x. P
   ------------------  SELECT_RULE
    A |- P[(@x.P)/x]
}
\FAILURE
Fails if applied to a theorem the conclusion of which is not
existentially quantified.

\EXAMPLE
The axiom {INFINITY_AX} in the theory {ind} is of the form:
{
   |- ?f. ONE_ONE f /\ ~ONTO f
}
\noindent Applying {SELECT_RULE} to this theorem returns the following.
{
  # SELECT_RULE INFINITY_AX;;
  val it : thm =
    |- ONE_ONE (@f. ONE_ONE f /\ ~ONTO f) /\ ~ONTO (@f. ONE_ONE f /\ ~ONTO f)
}
\USES
May be used to introduce an epsilon term to permit rewriting with a
constant defined using the epsilon operator.

\SEEALSO
CHOOSE, SELECT_AX, SELECT_CONV.

\ENDDOC