是否有用于执行自动推理的库
Is there any library for performing an automated reasoning
我想写一个程序来进行这样的演绎推理:
场所:
1.All猫是鸟。
2.Every鸟能飞
结论:
每只猫都会飞。 (虽然是废话)
(只是举个例子,实际会比这个复杂)
我想要的程序将能够接收用户输入的结论,并检查它在程序中已经存储的给定前提下是否有效,如果可能,能够建议什么结论是有效的。
那么,我的问题是,是否有任何图书馆可以以这种方式为我工作?
你没有提到语言,所以我不知道你真正想要的是不是图书馆。您描述的内容听起来像 自动定理证明 ,因此您可能会很好地研究该主题。一种自动定理证明语言——或交互式证明助手,或任何你喜欢的语言——是 Coq。我没有使用过它,但 Wikipedia 页面提供了很多信息。我试图整理一个简单的证明,但坦率地说它有点复杂。
另一个选择是逻辑编程。例如,PROLOG 会让你做类似的事情:
canfly(X) :- isbird(X).
isbird(X) :- iscat(X).
iscat(tom).
?- canfly(tom).
Yes
我想写一个程序来进行这样的演绎推理:
场所:
1.All猫是鸟。
2.Every鸟能飞
结论: 每只猫都会飞。 (虽然是废话)
(只是举个例子,实际会比这个复杂)
我想要的程序将能够接收用户输入的结论,并检查它在程序中已经存储的给定前提下是否有效,如果可能,能够建议什么结论是有效的。
那么,我的问题是,是否有任何图书馆可以以这种方式为我工作?
你没有提到语言,所以我不知道你真正想要的是不是图书馆。您描述的内容听起来像 自动定理证明 ,因此您可能会很好地研究该主题。一种自动定理证明语言——或交互式证明助手,或任何你喜欢的语言——是 Coq。我没有使用过它,但 Wikipedia 页面提供了很多信息。我试图整理一个简单的证明,但坦率地说它有点复杂。
另一个选择是逻辑编程。例如,PROLOG 会让你做类似的事情:
canfly(X) :- isbird(X).
isbird(X) :- iscat(X).
iscat(tom).
?- canfly(tom).
Yes