我一直在尝试解决 Coq 中的 Pumping lemma。 我在第三个子目标Mapp上。 我在MApp上的证明如下。 我现在被困在案例Hc: length s1>=pumping_constant re1 我尝试用案例H: length s1>=pumping_constant -&g ...
我一直在尝试解决 Coq 中的 Pumping lemma。 我在第三个子目标Mapp上。 我在MApp上的证明如下。 我现在被困在案例Hc: length s1>=pumping_constant re1 我尝试用案例H: length s1>=pumping_constant -&g ...
我试图证明抽引引理(这是逻辑基础书的练习之一)。 我以为我已经完成了MStarApp案例,但口译员告诉我仍然存在不集中的目标。 只有我不能把这个剩下的目标带到前面。 我尝试了每个子弹级别,但每次我得到[Focus] Wrong bullet: No more goals. 我不知道我的证明是否有问题 ...
全部我试图理解 SF-LF 书 chp4 中提到的教堂数字。 我得到 似乎cnat是某种类型,同时还有function。 怎么可能既是type又是function? 任何人都可以帮助解释一下吗? ...
我目前对如何证明以下定理感到困惑: 我被困在这里: 我知道不可能简单地证明 coq 中的排中律,但我真的很想知道用这个给定的定理是否可以证明排中律? ...
2 我正在研究软件基础并遇到错误。 ( https://softwarefoundations.cis.upenn.edu/lf-current/Maps.html ) 证明示例: 错误:在环境 x: string y: string 术语“eqb_string xy”的类型为“bool”,而 ...
在 Logical Foundations 的 IndProp.v 中,我们具有以下归纳属性: 有没有可能解决这个问题: 大概需要某种歧视或矛盾,因为nostutter [] -> nostutter [x]似乎没有任何意义,但我看不到任何可以让我取得进步的东西。 难道只是无法证明吗? ...
我试图弄清楚从终端运行时 LF 测试脚本如何输出手动评分的作业。 例如,如果您查看Induction.v有一个名为plus_comm_informal的练习,我正在尝试获取测试脚本InductionTest.v以获取我编写的评论或内容。 所以我做了以下尝试猴子调试。 我保存了文件。 然后我用co ...
通过软件基础的 Quick Chick 课程我坚持以下定理: 在这里我们得到: 证明true = true -> (eqb f1 f2) = true似乎是不可能的,因为(eqb f1 f2)可能为 false,在这种情况下,我们在空上下文中得到false = true ,这是无法证明 ...
任务:编写一个 function 将自然数转换为二进制数。 第二个 function 给出错误,因为它在结构上不是递归的: 我应该怎么做才能证明它总是终止,因为 q 总是小于 n。 ...
在软件基础“QuickChick”的第 4 卷中,我们进行了以下练习: 但是得到一个错误: 它突出显示match opt1 with . 也许,我的解决方案非常原始:它只是模式匹配所有可能的情况。 有更好的吗? 是什么导致此语法错误? ...
任务。 假设我们给 Coq 定义如下: 以下哪个命题是可证明的? 我证明了三分之二。 第三个是不可证明的,因为c3只会增加n,永远不会等于list的头部+1。但是如何正式证明它是不可证明的呢? 更新 1 ...
Output: 现在 n 可以是偶数也可以不是偶数。 如果 n 是偶数,m 也是偶数。 那么由ev_sum定理(n+m)也是偶数。 如果 n 不是偶数,则它具有 (n' + 1) 的形式,其中 n' 是偶数。 m 也不是偶数,并且具有 (m' + 1) 的形式,其中 m' 是偶数。 所以他们的 ...
我们得到这个: 我们还有一个先前证明的定理: 我们知道(n+m)是偶数, (n+p)也是偶数。 如何通过将 ev_sum 应用于 Hnm 和 Hnp 在上下文中创建新假设: ? ...
感谢Software Fondation 的电子书,我目前正在学习 coq。 我成功编写了如下添加: 但是由于以下错误,我被 exp 卡住了: 因为他们写道: 如果您遇到“Universe inconsistency”错误,请尝试迭代不同的类型。 迭代cnat 本身通常是有问题的。 我尝试使用cn ...
来自逻辑基础的 Rel 章节。 我得到了我试图理解的 excersize 的解决方案: 我不明白,介绍模式如何[| b' H1] [| b' H1]工作? 介绍后显示: 第二个子目标: 我知道它相当于破坏,但是什么样的破坏呢? 这绝对不是简单的destruct b 。 此外,我试图了解使用absu ...
我到了这一点: 输出: 我的计划是使用le传递性: a <= b-> b <= c-> a <= c 并替换a:= a,b:=(S b')和c:= a。 因此,我们将获得: a <=(S b')->(S b')&l ...
与nostutter excersizes一起玩我发现了另一种奇怪的行为。 这是代码: 展开后的状态是这样的: 当我运行specialize (H2 eq_refl). 在IndProp.v中加载其他逻辑基础文件,它可以工作。 不知何故,它理解它需要将“1”作为参数。 I ...
为了理解@keep_learning的答案 ,我一步一步地完成了以下代码: 这是我们在进行专业研究之前所拥有的 这是eq Prop,其构造函数eq_refl被专门用于: 我无法解释此命令的工作原理: 我阅读了有关专业的参考手册,但是那里的解释太广泛了。 据我了解 ...
我深入研究test_nostutter_1 exersize,发现了一种无需重复的解决方法: 我决定更多地使用它,在coq参考手册中,我发现有一种战术可以使战术多次循环。 将expr评估为v,该v必须是战术值。 将此战术值v应用了num次。 假设num> 1,在第一 ...
该书的作者为打结练习的一些单元测试提供了证明。 不幸的是,他们没有提供工作原理的解释。 我能够理解除以下以外的所有证明: 介绍之后,我们有以下内容: 当我删除repeat并进行一次匹配时,我得到以下信息: 因此,它尝试递归查找H2中的列表与任何nostutter构造函 ...