theorem-proving

    -1热度

    1回答

    我正在开发一阶逻辑模型。我想证明它是一致的。可能吗?有没有我可以用来做这件事的免费工具? 或者这是不可能的,因为哥德尔定理? 此致敬礼。

    1热度

    1回答

    我得到的溶液与以下定理,如下所示: Require Import Coq.Lists.List. Import ListNotations. Inductive suffix {X : Type} : list X -> list X -> Prop := | suffix_end : forall xs, suffix xs xs | suffix_ste

    1热度

    1回答

    我定义2种几乎相同的语言(foo和bar): theory SimpTr imports Main begin type_synonym vname = "string" type_synonym 'a env = "vname ⇒ 'a option" datatype foo_exp = FooBConst bool | FooIConst int |

    0热度

    1回答

    下面是一个简单的感应关系: datatype t1 = A t1 t1 | B datatype t2 = C t2 t2 | D inductive P :: "t1 ⇒ t2 ⇒ bool" where "P x1 y1 ⟹ P x2 y2 ⟹ P (A x1 x2) (C y1 y2)" | "P B D" lemma P_fun: "P x y ⟹

    8热度

    1回答

    我试图从chapter 7 of "theorem proving in lean"了解归纳类型。 我给自己设定了证明自然数的是继任者的任务,拥有平等的一个替代性质: inductive natural : Type | zero : natural | succ : natural -> natural lemma succ_over_equality (a b : natural) (

    1热度

    1回答

    我有一个编程语言AST的数据类型,我想推理一下,但AST的约有10种不同的构造函数。 data Term : Set where UnitTerm : Term VarTerm : Var -> Term ... SeqTerm : Term -> Term -> Term 我想写一个函数,该语言的语法树具有可判定的相等性。理论上,这很简单:没有太复杂的

    1热度

    1回答

    假设如下: Inductive bin : Set := Z | O. Fixpoint fib (n : nat) : list bin := match n with | 0 => [Z] | S k => match k with | 0 => [O] | S k' => fib k' ++ fib k end

    1热度

    1回答

    我正在研究诸如吸血鬼和E-Prover这样的一阶逻辑定理证明器,并且TPTP语法似乎是要走的路。我对逻辑编程语法比较熟悉,例如Answer Set Programming和Prolog,虽然我尝试引用TPTP syntax的详细描述,但我仍然不明白如何正确区分解释函数和非解释函子(而且我可能使用术语错误)。 本质上,我试图通过证明没有模型作为反例来证明一个定理。我的第一个困难是我没有想到下面的逻辑

    2热度

    1回答

    自从我开始学习交互式精益教程以来,一个问题让我感到不快:在Type内,单独的Prop层次结构的目的是什么? 正如我现在明白了吧,我们已经制定了以下宇宙层次: Type (n+1) | \ | Sort (n+1) | | Type n | (?) | \ | ... Sort n | | Type 0 ... (?) | \ |

    0热度

    1回答

    我有一个归纳关系,如下所示标题为后缀。我试图证明有关定理 suffix_app。我的一般想法是使用后缀xs ys这一事实来表明xs等于ys或者它是某些系列元素缺点'd到ys。 Require Import Coq.Lists.List. Import ListNotations. Inductive suffix {X : Type} : list X -> list X -> Prop :