P_PSKOLEM_CONV.doc

advertisement
\DOC P_PSKOLEM_CONV
\TYPE {P_PSKOLEM_CONV : (term -> conv)}
\KEYWORDS
conversion.
\LIBRARY pair
\SYNOPSIS
Introduces a user-supplied Skolem function.
\DESCRIBE
{P_PSKOLEM_CONV} takes two arguments. The first is a variable {f}, which
must range over functions of the appropriate type, and the second is a
term of
the form {!p1...pn. ?q. t} (where {pi} and {q} may be pairs).
Given these arguments, {P_PSKOLEM_CONV} returns the theorem:
{
|- (!p1...pn. ?q. t) = (?f. !p1...pn. tm[f p1 ... pn/q])
}
which expresses the fact that a skolem function {f} of the
universally quantified variables {p1...pn} may be introduced in place of
the
the existentially quantified pair {p}.
\FAILURE
{P_PSKOLEM_CONV f tm} fails if {f} is not a variable, or if the input
term {tm}
is not a term of the form {!p1...pn. ?q. t}, or if the variable {f} is
free in
{tm}, or if the type of {f} does not match its intended use as an {n}place
curried function from the pairs {p1...pn} to a value having the same type
as {p}.
\SEEALSO
X_SKOLEM_CONV, PSKOLEM_CONV.
\ENDDOC
Download