问题标签 [agda]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3207 浏览

regex - 关于正则表达式的证明

有谁知道以下任何例子?

  1. 证明助手(例如Coq )中关于正则表达式(可能通过反向引用扩展)的证明开发。
  2. 关于正则表达式的依赖类型语言(例如Agda )的程序。
0 投票
2 回答
694 浏览

haskell - 在 Agda 研究 Peano Axioms 并遇到了一些症结

是我要解决和支持的公理,我尝试过使用 cong(来自核心库),但是 cong 构造函数有问题

让我无处可去,我知道 cong 我需要提供一个 refl 来表示相等和一个类型,但我不确定我应该提供什么类型。想法?

这是大学的一项小任务,所以我宁愿有人展示我错过的东西,而不是写出准确的答案,但我会感谢任何程度的支持。

0 投票
1 回答
3731 浏览

haskell - 阿格达的“严格积极”

我正在尝试根据我在 Haskell 中编写的程序将一些指称语义编码到 Agda 中。

在 Agda 中,直接翻译是;

但我收到与 FunVal 相关的错误,因为;

Value 不是严格正数,因为它出现在 Value 定义中构造函数 FunVal 类型中箭头的左侧。

这是什么意思?我可以在 Agda 中编码吗?我是不是走错了路?

谢谢。

0 投票
2 回答
704 浏览

theorem-proving - 在 Agda 中显示 (head . init ) = head

我试图在 Agda 中证明一个简单的引理,我认为这是正确的。

如果一个向量有两个以上的元素,则取其head后取与立即init取其相同head

我将其制定如下:

这给了我;

作为回应。

我不完全了解如何阅读该(init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs))组件。我想我的问题是;是否可能,该术语的含义和含义。

非常感谢。

0 投票
1 回答
1623 浏览

compiler-construction - 不安全的强制和更高效的 Agda 代码 (-ftrust-me-im-agda)

在 Agda 邮件列表中,Conor McBride 问道:

有没有办法像推定的那样掌握操作

如果什么都没喂,它实际上并没有检查Just and Goes Wrong(在米尔纳的意义上)?

Agda 可能会证明 Maybe a == Just1 a,并且可以消除 sum 类型的中间构造函数。

我可以想到使用 unsafeCoerce# 或 unpackClosure# 的方法,但是其他人有想法吗?

虽然这个段错误(单个构造函数类型可以避免一些闭包开销)。核心看起来不错:

0 投票
1 回答
2057 浏览

agda - Agda 中有限集的定义

我是阿格达的新手。我正在阅读 Ana Bove 和 Peter Dybjer 的论文“工作中的依赖类型”。我不明白有限集的讨论(在我的副本中的第 15 页)。

论文定义了一个Fin类型:

我一定遗漏了一些明显的东西。我不明白这个定义是如何工作的。有人可以简单地将定义翻译Fin成日常英语吗?这可能是我理解本文这一部分所需的全部内容。

感谢您花时间阅读我的问题。我很感激。

0 投票
1 回答
1303 浏览

gadt - Agda 中的参数化归纳类型

0 投票
1 回答
283 浏览

recursion - 结构感应的终止

我无法让 Agda 的终止检查器接受使用结构归纳定义的函数。

我创建了以下作为我认为最简单的例子来展示这个问题。下面的定义size被拒绝,即使它总是在严格更小的组件上递归。

这个问题有通用的解决方案吗?我需要Recursor为我的数据类型创建一个吗?如果是,我该怎么做?(我想如果有一个如何定义Recursorfor的例子List A,那会给我足够的提示吗?)

0 投票
1 回答
256 浏览

gadt - 消除subst以证明相等

我试图将 mod-n 计数器表示为将间隔[0, ..., n-1]分成两部分:

使用它,定义两个关键操作很简单(为简洁起见省略了一些证明):

当试图证明+1并且-1是逆时,问题就来了。我不断遇到需要为这些subst引入的消除器的情况,即类似

但事实证明这是(有点)在乞求问题:类型检查器不接受它,因为subst B x=x' y : B x'y : B x......

0 投票
1 回答
450 浏览

equality - 异质平等的一致性