Coq是一种形式化的证明管理系统,半交互式定理证明器和函数式编程语言。 Coq用于软件验证,编程语言的形式化,数学定理的形式化,教学等。由于Coq的交互性,如果认为合适,我们建议将问题链接到https://x80.org/collacoq/上的可执行示例。
我试图在Coq的命题中证明 - >的传递性:定理暗示_trans:forall P Q R:Prop,(P - > Q) - >(Q - > R) - >(P - > R)。证明。我想破坏所有......
Coq将乘法逆函数1 / x定义为Rdefinitions.v和Field_theory.v中的总函数R - > R.值1/0未定义,所有计算公理都忽略它。 ...
无论如何在将Coq提取到Haskell时保留注释?理想情况下,我希望机器生成的Haskell文件不受人类影响,因此提取注释的动机是......
我正在尝试使用表示某种通用代数上下文中的表达式的数据类型。在(钢笔和纸)数学中表达这一点的通常方法是你有一组函数符号,......
我试图在两个列表上证明一个简单的归纳,并且由于某种原因,Coq写入归纳假设是错误的。这是我的证明:引理eqb_list_true_iff_left_to_right:forall A(eqb:A - > ...
我正在试验Coq的整数和有理数的标准库。到目前为止,我的证据非常耗时且看起来很糟糕。我想我错过了一些重要的证明技巧。这么简单......
1个子目标a,b:T管H:TApp a b = a ______________________________________(1/1)False(其中TApp是构造函数)在Idris中,这可以用\ Refl =>不可能证明但我没有管理......
根据某些定理,我们知道类型A等于类型B.如何在类型检查期间将其告知Coq编译器?我想实现一个非空树,使每个节点都知道它的大小:Inductive Struct:...
我正在尝试编写以下函数:Ltac restore_dims:=使用|重复匹配目标[| - context [@Mmult?m?n?o?A?B]] =>让Matrix m'n':= A的类型...
如何在Prop中证明一些明显符合逻辑的 - list_get问题
问题是我不能在不跳过步骤的情况下在H上应用归纳法。我应该得到一些instr0来应用标准引理:Lemma get_Some {A}(l:list A)n x:list_get l n = Some x -...
引理rev_firstn:forall(x:list bool)(n:nat),rev(firstn n x)= firstn n(rev x)。我花了很多时间在这上面。我从一个明智的目标开始,但最终总是有一个目标......
如果我像这样定义乘法(drugi_c),我该如何证明,例如X * 0 = 0? (如何通过定义证明某事?)Fixpoint drugi_c(x y:nat):nat:=匹配x,y与| _,O => O | O,_ =&...
对于归纳类型nat,生成的归纳原则在其语句中使用构造函数O和S:Inductive nat:Set:= O:nat | S:nat - > nat nat_ind:forall P:nat - > Prop,...
对于我的研究,我在Coq中为nat类型写了一堆函数,并证明它们是正确的。现在我需要为类型N编写相同的函数,但证明它们的正确性似乎很痛苦......
我正在寻找关于nats的这个引理。我希望它已经存在于其中一个Coq库中,所以我不必证明它。 forall m n:nat,(S m <n)%nat - >(n - (S m)<n)%nat请...
定理mult_comm:forall m n:nat,m * n = n * m。证明。前奏。感应 - 简单。重写(mult_0_r m)。反思。 - 简单。改写