二、归谬赋值法
从上面的介绍可以看出,真值表法本质上就是枚举法,把一个公示所有可能的取值情况都算出来。这种方法是最基础的,也是最有效的。但是这种方法运用起来很复杂。比如例5、例6总共涉及三个命题变元,结果真值表就有八行。如果命题变元更多,真值表的行数也会相应增加,而且是成指数增加的。有没有更简单的判定重言式的方法呢?
答案是有的。其实我们判定重言式的目的是,判断在命题变元的所有取值情况下,被判断的复合命题是否均为真命题。所以,我们并不需要知道该公式在所有情况下的取值,我们只需要知道它有没有可能为假就够了。如果它在变元的某种取值下为假,那么该公示就不是重言式;反之,如果它在变元的所有取值情况下都不可能为假,那么它就是重言式。
归谬赋值法的原理就是这样的,通过假设被判断的公式为假,然后反推命题变元的取值情况,如果最后得出一个矛盾的取值组合,就说明原公式不能为假。
例7用归谬法判断p∧q→p是否为重言式。
解:首先假设p∧q→p为假,也就是(p∧q)→p这个蕴含式为假;结合表3,蕴含式为假只有一种情况,就是前件真而后件假;前件是一个合取式p∧q,再结合表3可知,合取为真只有一种情况,即p和q都为真。蕴含式为假要求p为假,合取式为真要求p为真,这就出现矛盾了。这说明只有当p既为真又为假时,p∧q→p才会为假。显然这是不可能的。我们可以把以上推理过程写成这样:

例8判断(p→q)→(¬p∨¬q)是否为重言式。
解:还是先假设(p→q)→(¬p∨¬q)为假,这是一个蕴含式,蕴含式为假,可以得出前件(p→q)为真,且后件(¬p∨¬q)为假;由于后件是一个析取式,所以后件为假推出两个析取支¬p和¬q都为假,从而得出p和q都为真。将p和q带入前件p→q中,发现满足前件为真,无矛盾。所以,原式不是重言式。推理过程如下:

在使用归谬赋值法时,要注意以下技巧:如果遇到蕴含为假、析取为假、合取为真可优先赋值,因为它们都只有一种赋值。蕴含为假,则前件真后件假;析取为假,则析取支都为假;合取为真,则合取支都为真。优先对这些单一情况赋值可以有效地降低推理的复杂程度。但是,有的时候,分情况讨论是难免的,比如下面这个例子。
例9判断公式p∨q∧r→(p∨q)∧(p∨r)是否为重言式。(https://www.daowen.com)
解:运用归谬赋值法进行推理,过程如下:

这个时候前件是一个析取式且为真,后件是一个合取式且为假。我们只能分情况讨论了。我们以前件作为分情况讨论的一句,先假设p为真,然后假设q∧r为真(也就是p为假)。

当p为真时,后件的p∨q和p∨r都为真,因此后件为真,这和前面推出的后件为假矛盾。所以当p为真时,原式不可能为假。

可以看出,当q∧r为真时,可以推出q和r都为真,因此后件的p∨q和p∨r都为真,所以(p∨q)∧(p∨r)也为真,这和前面推出的后件为假矛盾。所以当q∧r为真时,原式也不可能为假。
综合以上两种情况,原式都不可能为假,所以原式是重言式。
由于有多种赋值可以使得蕴含式为真、合取式为假以及析取式为真,所以在遇到这些情况时,一般需要分情况讨论。但是在分情况讨论时也要注意以下技巧:蕴含式为真可分为前件为假和后件为真两种情况;合取式为假可按两个合取支分别为假分为两种情况;析取式为真可按两个析取支分别为真分为两种情况。
除此之外,当分情况讨论后,必须在所分的所有情况下都推出矛盾,也就是说在所有情况下原公式都不能为假,才能说明原公式是重言式。因为分情况讨论时,各种情况之间的关系是并列关系,只要其中一种情况没有矛盾,就说明原公式是可以为假的。