问题标签 [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.
regex - 关于正则表达式的证明
有谁知道以下任何例子?
- 证明助手(例如Coq )中关于正则表达式(可能通过反向引用扩展)的证明开发。
- 关于正则表达式的依赖类型语言(例如Agda )的程序。
haskell - 在 Agda 研究 Peano Axioms 并遇到了一些症结
是我要解决和支持的公理,我尝试过使用 cong(来自核心库),但是 cong 构造函数有问题
让我无处可去,我知道 cong 我需要提供一个 refl 来表示相等和一个类型,但我不确定我应该提供什么类型。想法?
这是大学的一项小任务,所以我宁愿有人展示我错过的东西,而不是写出准确的答案,但我会感谢任何程度的支持。
haskell - 阿格达的“严格积极”
我正在尝试根据我在 Haskell 中编写的程序将一些指称语义编码到 Agda 中。
在 Agda 中,直接翻译是;
但我收到与 FunVal 相关的错误,因为;
Value 不是严格正数,因为它出现在 Value 定义中构造函数 FunVal 类型中箭头的左侧。
这是什么意思?我可以在 Agda 中编码吗?我是不是走错了路?
谢谢。
theorem-proving - 在 Agda 中显示 (head . init ) = head
我试图在 Agda 中证明一个简单的引理,我认为这是正确的。
如果一个向量有两个以上的元素,则取其
head
后取与立即init
取其相同head
。
我将其制定如下:
这给了我;
作为回应。
我不完全了解如何阅读该(init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs))
组件。我想我的问题是;是否可能,该术语的含义和含义。
非常感谢。
compiler-construction - 不安全的强制和更高效的 Agda 代码 (-ftrust-me-im-agda)
在 Agda 邮件列表中,Conor McBride 问道:
有没有办法像推定的那样掌握操作
如果什么都没喂,它实际上并没有检查Just and Goes Wrong(在米尔纳的意义上)?
Agda 可能会证明 Maybe a == Just1 a,并且可以消除 sum 类型的中间构造函数。
我可以想到使用 unsafeCoerce# 或 unpackClosure# 的方法,但是其他人有想法吗?
虽然这个段错误(单个构造函数类型可以避免一些闭包开销)。核心看起来不错:
agda - Agda 中有限集的定义
我是阿格达的新手。我正在阅读 Ana Bove 和 Peter Dybjer 的论文“工作中的依赖类型”。我不明白有限集的讨论(在我的副本中的第 15 页)。
论文定义了一个Fin
类型:
我一定遗漏了一些明显的东西。我不明白这个定义是如何工作的。有人可以简单地将定义翻译Fin
成日常英语吗?这可能是我理解本文这一部分所需的全部内容。
感谢您花时间阅读我的问题。我很感激。
recursion - 结构感应的终止
我无法让 Agda 的终止检查器接受使用结构归纳定义的函数。
我创建了以下作为我认为最简单的例子来展示这个问题。下面的定义size
被拒绝,即使它总是在严格更小的组件上递归。
这个问题有通用的解决方案吗?我需要Recursor
为我的数据类型创建一个吗?如果是,我该怎么做?(我想如果有一个如何定义Recursor
for的例子List A
,那会给我足够的提示吗?)
gadt - 消除subst以证明相等
我试图将 mod-n 计数器表示为将间隔[0, ..., n-1]
分成两部分:
使用它,定义两个关键操作很简单(为简洁起见省略了一些证明):
当试图证明+1
并且-1
是逆时,问题就来了。我不断遇到需要为这些subst
引入的消除器的情况,即类似
但事实证明这是(有点)在乞求问题:类型检查器不接受它,因为subst B x=x' y : B x'
和y : B x
......