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 44
|
\DOC GEN
\TYPE {GEN : term -> thm -> thm}
\SYNOPSIS
Generalizes the conclusion of a theorem.
\KEYWORDS
rule, quantifier, universal.
\DESCRIBE
When applied to a term {x} and a theorem {A |- t}, the inference rule
{GEN} returns the theorem {A |- !x. t}, provided {x} is a variable not
free in any of the assumptions. There is no compulsion that {x} should
be free in {t}.
{
A |- t
------------ GEN `x` [where x is not free in A]
A |- !x. t
}
\FAILURE
Fails if {x} is not a variable, or if it is free in any of the assumptions.
\EXAMPLE
This is a basic example:
{
# GEN `x:num` (REFL `x:num`);;
val it : thm = |- !x. x = x
}
\noindent while the following example shows how the above side-condition
prevents the derivation of the theorem {x <=> T |- !x. x <=> T}, which is
invalid.
{
# let t = ASSUME `x <=> T`;;
val t : thm = x <=> T |- x <=> T
# GEN `x:bool` t;;
Exception: Failure "GEN".
}
\SEEALSO
GENL, GEN_ALL, GEN_TAC, SPEC, SPECL, SPEC_ALL, SPEC_TAC.
\ENDDOC
|