编程题
                验证(∃x)(A(x)→B(x))⇔(∀x)A(x)→(∃x)B(x)

题目描述

请在有限个体域上验证谓词演算以下等价式:

(∃x)(A(x)→B(x))⇔(∀x)A(x)→(∃x)B(x)

约定:客体变元x的论述范围为{1, 2, ..., n};当代入具体的客体后,每个原子谓词公式的值可以为T或F。

输入描述

输入一个正整数n,n≤10。

输出描述

记(∃x)(A(x)→B(x))为F1、(∀x)A(x)→(∃x)B(x)为F2。请在有限个体域上通过枚举客体变元去掉量词并同时列出F1和F2的真值表,以此验证上述等价式。

样例输入

2

样例输出

A(1) A(2) B(1) B(2) -> F1 F2
0 0 0 0 -> 1 1
0 0 0 1 -> 1 1
0 0 1 0 -> 1 1
0 0 1 1 -> 1 1
0 1 0 0 -> 1 1
0 1 0 1 -> 1 1
0 1 1 0 -> 1 1
0 1 1 1 -> 1 1
1 0 0 0 -> 1 1
1 0 0 1 -> 1 1
1 0 1 0 -> 1 1
1 0 1 1 -> 1 1
1 1 0 0 -> 0 0
1 1 0 1 -> 1 1
1 1 1 0 -> 1 1
1 1 1 1 -> 1 1

知识点

  • 有限个体域上客体变元的枚举
  • 谓词公式赋值
  • 真值表
  • 谓词公式等价式
查看答案
赣ICP备20007335号-2