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 NOT_MP
\TYPE {NOT_MP : (thm -> thm -> thm)}
\SYNOPSIS
Implements the Modus Ponens inference rule and
takes negation as an implication.
\KEYWORDS
rule, modus ponens, implication, negation.
\DESCRIBE
When applied to theorems {A1 |- t1 ==> t2} and {A2 |- t1},
the inference rule {NOT_MP} returns the theorem {A1 u A2 |- t2}.
{
A1 |- t1 ==> t2 A2 |- t1
---------------------------- NOT_MP
A1 u A2 |- t2
}
\noindent This is the same as the primitive inference rule {MP}.
However, the first theorem can also be a negation. In such case,
{NOT_MP} automatically transforms it to an implication with {F} as
conclusion.
{
A1 |- ~ t A2 |- t
----------------------- NOT_MP
A1 u A2 |- F
}
\FAILURE
Fails unless the first theorem is an implication whose antecedent is the
same as the conclusion of the second theorem (up to alpha-conversion),
or it is a negation.
\COMMENTS
The rule {MP} used to behave as what is described in this page due to
some historical reasons. Now, {MP} is the true primitive rule
implementing Modus Ponens. {NOT_MP} is introduced to implement the old
{MP}. The use of {NOT_MP} is discouraged. If the input theorem is
expected to be a negation, use {(MP o NOT_ELIM)}.
\SEEALSO
MP, EQ_MP, LIST_MP, MATCH_MP, MATCH_MP_TAC, MP_TAC.
\ENDDOC
|