File: META_EXISTS_TAC.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 (31 lines) | stat: -rw-r--r-- 948 bytes parent folder | download | duplicates (4)
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
\DOC META_EXISTS_TAC

\TYPE {META_EXISTS_TAC : (string * thm) list * term -> goalstate}

\SYNOPSIS
Changes existentially quantified variable to metavariable.

\DESCRIBE
Given a goal of the form {A ?- ?x. t[x]}, the tactic {X_META_EXISTS_TAC} gives
the new goal {A ?- t[x]} where {x} is a new metavariable. In the resulting
proof, it is as if the variable has been assigned here to the later choice for
this metavariable, which can be made through for example {UNIFY_ACCEPT_TAC}.

\FAILURE
Never fails.

\EXAMPLE
See {UNIFY_ACCEPT_TAC} for an example of using metavariables.

\USES
Delaying instantiations until the correct term becomes clearer. 

\COMMENTS
Users should probably steer clear of using metavariables if possible. Note that 
the metavariable instantiations apply across the whole fringe of goals, not 
just the current goal, and can lead to confusion.

\SEEALSO
EXISTS_TAC, META_SPEC_TAC, UNIFY_ACCEPT_TAC, X_META_EXISTS_TAC.

\ENDDOC