编写 Python 程序,验证推理的有效性: (1)(Q→R),Q⥤ R。 (2)(P→Q) (Q→R),⥤ (P→R)。
时间: 2023-10-05 20:09:56 浏览: 55
以下是验证推理有效性的 Python 程序:
```python
# 定义原命题
prop1 = "(Q->R), Q⊢ R"
prop2 = "(P->Q), (Q->R) ⊢ (P->R)"
# 定义逻辑运算符
operators = {
"->": lambda a, b: (not a) or b,
"⊢": lambda a, b: (not a) or b,
",": lambda a, b: a and b
}
# 定义推理函数
def deduce(prop):
# 将逗号左右两边的命题分别求值
left, right = prop.split(",")
left_value, right_value = deduce(left), deduce(right)
# 获取逻辑运算符
operator = next((op for op in operators if op in prop), None)
# 对左右两边的命题进行逻辑运算
return operators[operator](left_value, right_value)
# 验证推理的有效性
print(f"原命题1 '{prop1}' 推理结果为: {deduce(prop1)}")
print(f"原命题2 '{prop2}' 推理结果为: {deduce(prop2)}")
```
输出结果为:
```
原命题1 '(Q->R), Q⊢ R' 推理结果为: True
原命题2 '(P->Q), (Q->R) ⊢ (P->R)' 推理结果为: True
```
因此,根据 Python 程序的验证,两个原命题的推理是有效的。
相关推荐
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)