Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
Coq 平等实现
我正在编写一种玩具语言 其中 AST 中的节点可以有任意数量的子节点 Num has 0 Arrow有 2 个 等等 您可以致电这些接线员 此外 AST 中可能只有一个节点被 聚焦 我们对数据类型进行索引Z如果它有焦点 或者H如果没有 我需
coq
证明唯一的零长度向量为零
我有一个类型定义为 Inductive bits nat gt Set bitsNil bits 0 bitsCons forall l bool gt bits l gt bits S l 我试图证明 Lemma emptyIsAlway
coq
dependenttype
Coq Proof Assistant 中依赖类型的问题
考虑以下简单的表达语言 Inductive Exp Set EConst nat gt Exp EVar nat gt Exp EFun nat gt list Exp gt Exp 及其格式良好的谓词 Definition Env lis
coq
dependenttype
归纳命题在 Coq 中如何运作?
我正在阅读软件基础中的 IndProp 和 Adam Chlipala 的第 4 章书 但我在理解归纳命题时遇到了困难 为了运行示例 让我们使用 Inductive ev nat gt Prop ev 0 ev 0 ev SS forall
coq
Coq 将不存在的语句转换为 forall 语句
我是 Coq 的新手 这是我的问题 我有一个声明说 H forall x term exists y term P x y P y x 我猜它相当于 forall x y term P x y P y x gt false 但我可以使用哪种
coq
forall
如何在 Coq 中将一条线的公理定义为两个点
我想找一个例子axiom in Coq类似于几何中的线公理 如果给定两个点 则这两点之间存在一条线 我想看看如何在 Coq 中定义它 本质上选择这个简单的直线公理来看看如何定义一些非常原始的东西 因为我很难在自然语言之外定义它 具体来说 我
geometry
coq
formalmethods
如何指示两种 Coq 电感类型尺寸的减小
我正在尝试定义game组合游戏的归纳型 我想要一个比较方法来判断两个游戏是否相同lessOrEq greatOrEq lessOrConf or greatOrConf 然后我可以检查两个游戏是否相等 如果它们都是 lessOrEq and
Comparison
coq
recursivedatastructures
totality
在 Coq 中使用我自己的 == 运算符重写策略
我试图直接从字段的公理证明简单的字段属性 经过对 Coq 原生现场支持的一些实验 像这个 我决定最好简单地写下 10 条公理并使其自成一体 我在需要使用的时候遇到了困难rewrite与我自己的 运算符自然不起作用 我意识到我必须添加一些我的
coq
Coq 中归纳集的归纳子集
我有一个用三个构造函数构建的归纳集 Inductive MF Set D MF cn MF gt MF gt MF dn Z gt MF gt MF 我想以某种方式定义一个新的归纳集 B 使得 B 是 MF 的子集 仅包含从 D 和 dn
coq
当 Coq 中使用自己的可判定性时,评估计算不完整
The Eval compute命令并不总是计算为简单表达式 考虑代码 Require Import Coq Lists List Require Import Coq Arith Peano dec Import ListNotation
coq
如何在 Coq 中自动证明实数的简单相等?
我正在寻找的是auto类似的策略可以证明简单的等式 例如 1 2 2 4 到目前为止 我手动尝试过的是使用ring simplify and field simplify来证明等式 即使这样效果也不好 Coq 8 5b3 下面的例子有效 R
coq
coqtactic
realnumber
在 Coq 中实现向量加法
在某些依赖类型语言 例如 Idris 中实现向量加法相当简单 根据维基百科上的例子 import Data Vect default total pairAdd Num a gt Vect n a gt Vect n a gt Vect n
vector
coq
idris
convoypattern
如何切换到 Coq 的特定版本——尤其是在使用 Opam 管理 Coq 版本时?
我目前使用的是标准方式 可能通过网站 安装的标准方式 但我想用tcoq 我相信我已经正确安装了它 因为我有一个 bin 文件 并且所有常见的 Coq 内容似乎都在那里 pinno gamepad tcoq ls bin coq tex co
coq
opam
如何证明 Coq 中的两个 Fibonacci 实现相等?
我有两个斐波那契实现 如下所示 我想证明它们在功能上是等效的 我已经证明了自然数的性质 但是这个练习需要另一种我无法弄清楚的方法 我使用的教科书介绍了 Coq 的以下语法 因此应该可以使用这种表示法来证明相等性
functionalprogramming
Fibonacci
coq
如何从外部软件调用证明助手Coq
如何从外部软件调用证明助手Coq Coq 有一些 API 吗 Coq 命令行界面是否足够丰富 可以在文件中传递参数并在文件中接收响应 我对 Java 或 C 桥感兴趣 这是合理的问题 Coq 并不是一种常见的商业软件 人们可以从中获得开发人
coq
使用 lambda 参数重写 Coq
我们有一个函数可以将元素插入到列表的特定索引中 Fixpoint inject into A x A l list A n nat option list A match n l with 0 gt Some x l S k gt None
coq
proof
Coq 中的 `destruct` 和 `case_eq` 策略有什么区别?
我明白了destruct因为它将归纳定义分解为其构造函数 我最近看到case eq我不明白它有什么不同 1 subgoals n nat k nat m M t nat H match M find elt nat n m with Som
coq
使用由明确定义的归纳定义的递归函数进行计算
当我使用Function在 Coq 中定义一个非结构递归函数 当要求进行特定计算时 生成的对象会表现得很奇怪 事实上 不是直接给出结果 而是Eval compute in 指令返回一个相当长 通常为 170 000 行 的表达式 Coq 似
coq
当目标是类型时,为什么 Coq 不允许反转、析构等?
When refine正在运行一个程序 我试图通过以下方式结束证明inversion on a False假设当目标是Type 这是我尝试做的证明的简化版本 Lemma strange1 forall T Type 0 gt 0 gt T
coq
proof
Inversion
如何禁止简单策略展开算术表达式?
The simpl策略展开诸如2 a 匹配树 这看起来一点也不简单 例如 Goal forall i Z fun x gt x i 3 i 3 simpl 导致 forall i Z match i with 0 gt 3 Z pos y
coq
«
1
2
3
4
5
»