agda相关内容

在依赖类型的函数式编程语言中,展平列表是否更容易?

在Haskell中寻找一个可以展平任意深度嵌套列表的函数,即递归地应用concat并在最后一次迭代时停止(使用非嵌套列表)的函数时,我注意到这需要有一个更灵活的类型系统,因为随着列表深度的变化,输入类型也会有所不同。事实上,有几个堆栈溢出问题--例如this一个--其中响应指出,不存在将在不同深度‘查看’不同嵌套列表的函数。 编辑:有些答案在Haskell中提供了解决办法,用于自定义数据类型,或 ..
发布时间:2022-08-20 11:39:27 其他开发

通过(一元)JOIN和FMAP进行终止检查替换

我使用的是大小类型,并且有一个类型化术语的替换函数,该函数用于终止检查我是否直接给出定义,但如果我通过(一元)联接和FMAP将其分解,则不会。 {-# OPTIONS --sized-types #-} module Subst where open import Size 要显示问题,只需有单位和就足够了。我的数据类型为Trie和Term,并且我在Term内部使用Term同域 ..
发布时间:2022-04-20 14:04:09 其他开发

协助 Agda 的终止检查器

假设我们定义了一个函数 f : N \to N0 = 0f (s n) = f (n/2) -- 这个/操作符被实现为地板除法. Agda 会在鲑鱼上画 f,因为它无法判断 n/2 是否小于 n.我不知道如何告诉 Agda 的终止检查器任何事情.我在标准库中看到他们有一个除以 2 的除法和证明 n/2 解决方案 Agda 的终止检查器只检查结构递归(即发生在结构上较小的参数上的调用),而无 ..
发布时间:2022-01-02 13:36:41 其他开发

是否有具有约束类型的语言?

是否有一种类型化编程语言可以像下面两个示例那样约束类型? 概率是一个浮点数,最小值为 0.0,最大值为 1.0. type 浮点数的概率子类型在哪里最大值 = 0.0min_value = 1.0 离散概率分布是一个映射,其中:键应该都是相同的类型,值都是概率,值的总和 = 1.0. 类型 DPDmap的子类型在哪里总和(值)= 1.0 据我所知,Has ..
发布时间:2021-12-14 12:37:43 其他开发

Agda 级别错误消息的含义:... : .Agda.Primitive.Level

我正在尝试破译有关级别的错误消息.在 Haskell 中,我可以以一种简单的方式编写以下流函数,twist: 数据流 a = a :>流一个扭曲 :: (a -> (b , (a c))) ->(c -> (b , (a c))) ->(c) ->流b扭曲lt rt (左a) = b :>扭曲 lt rt ac在哪里(b, ac) = lt a扭曲lt rt(右c)= b:>扭曲 lt rt a ..
发布时间:2021-09-11 20:14:46 其他开发

获得路径归纳以在 Agda 中工作

我不明白为什么我的路径归纳没有正确地进行类型检查.当提到 C (refl x) 时,它说“C x 应该是一个函数类型,但它不是".也许我对 refl 的定义是错误的,或者我的 {} 和 () 有什么问题? data _≡_ {A : Set}(a : A) : A → Set whererefl : a ≡ a中缀 4 _≡_pathInd : ∀ {u} → {A : 集合} →(C : {x ..
发布时间:2021-09-11 20:08:50 其他开发

Agda 函数,类型上的函数匹配

我想创建一个辅助函数,它将从索引或参数化类型中获取一个术语并返回该类型参数. showLen : {len : ℕ} {A : Set} ->Vec A len ->ℕ显示 ?= 伦showType : {len : ℕ} {A : Set} ->Vec A len ->放显示类型?= A 这可能吗?(我可以看到 showType [] 可能有什么问题,但是当 Type 被索引时呢?) ..
发布时间:2021-09-11 20:07:56 其他开发

专用构造函数上的模式匹配

几天来我一直在努力解决一个问题,但我的 Agda 技能不是很强大. 我正在尝试针对仅在特定索引处定义的索引数据类型编写函数.这仅适用于数据构造器的某些专业化.我不知道如何定义这样的函数.我试图将我的问题减少到一个较小的例子. 设置涉及自然数列表,具有用于见证列表成员的类型和用于删除列表成员的函数. 打开导入Data.Nat打开导入 Relation.Binary.Core数据列表:设 ..
发布时间:2021-09-11 20:06:47 其他开发

路径归纳隐含

这是获取路径归纳以在 Agda 中工作的后续问题 我想知道这个结构什么时候可能更具表现力.在我看来,我们总是可以这样表达: f : forall {A} ->{x y : A} ->x == y ->“某种类型"f refl = p == refl 的“某种类型"的实例 这里 Agda 将给出与 c 相同的例子进行路径归纳:(x : A) ->C refl 来自那个问题: pathIn ..
发布时间:2021-09-11 20:03:03 其他开发

Idris 可以推断顶级常量类型的索引吗?

例如,Agda 允许我这样写: 打开导入Data.Vec打开导入 Data.NatmyVec : Vec ℕ _myVec = 0 ∷ 1 ∷ 2 ∷ 3 ∷ [] 和 myVec 将按预期具有 Vec ℕ 4 类型. 但如果我在 Idris 中尝试同样的方法: 导入Data.VectmyVec : Vect _ NatmyVec = [0, 1, 2, 3] 我从类型检查器收到一条 ..
发布时间:2021-09-11 19:56:06 其他开发

在 agda 中使用计算函数的值进行证明

我仍在尝试围绕 agda 进行思考,所以我写了一个小井字游戏类型 data Game : Player ->维克广场 9 ->设置在哪里开始:游戏 x ( - ∷ - ∷ - ∷- ∷ - ∷ - ∷- ∷ - ∷ - ∷ [] )xturn : {gs : Vec Square 9} ->(n: ℕ) ->游戏 x gs ->≤(#ofMoves gs) ->游戏 o (makeMove gs ..
发布时间:2021-09-07 19:26:45 其他开发

什么是公理 K?

我注意到自 HoTT 以来,关于“Axiom K"的讨论越来越频繁.我相信这与模式匹配有关.我很惊讶在 TAPL、ATTAPL 或 PFPL 中找不到参考. 什么是 Axiom K? 它是否像 SML 一样用于 ML 样式的模式匹配(或仅用于依赖模式匹配)? Axiom K 的合适参考是什么? 解决方案 Axiom K 也称为身份证明唯一性原则,是关于性质的公理Martin-Lö ..

Agda:为什么我无法在 refl 上进行模式匹配?

我试图证明关于整数的可整性.首先,我试图证明可分性是反射性的. ∣-refl : ∀{n} → n ∣ n 因为我定义了基于减法的可分性... data _∣_ : ℤ → ℤ → Set where0∣d : ∀{d} → 零 ∣ dn-d∣d : ∀{n d} → (n - d) ∣ d → n ∣ d ...如果我使用 n-n=0 的事实似乎很容易: ∣-refl {n} 与 n- ..
发布时间:2021-06-14 20:23:48 其他开发

阿格达.冒号之前/之后的参数

在定义数据类型时,我可以“通过"冒号前的一些参数. data Image_э_ { A B : Set} : (f : A → B) → B → Set whereim : {f : A → B} → (x : A) → 图像 f э f x 但由于未知原因,我似乎无法在函数声明中执行此操作. exIm {A B : Set} : {f : A → B}{y : B} → Image f э ..
发布时间:2021-06-14 19:05:29 其他开发

Agda中的类型层次结构

我正在尝试弄清类型层次结构在Agda中的工作方式. 假设我定义了一个集合类型X: X : Set ,然后继续构建归纳类型 data Y : X -> Set where X -> Set的类型是什么?是设置还是类型? 谢谢! 解决方案 那么,为什么不问Agda本身呢?我将对Emacs使用出色的Agda模式.我们从以下内容开始: module Hier ..
发布时间:2020-11-23 05:21:05 其他开发

可以将Agda用作库吗?

除了可以在文件系统(带有EMACS,终端等)上使用Agda之外,还可以直接从Haskell作为库使用它吗?例如: -- UsingAgda.hs import Agda -- Prints the type of a term on some Agda code main :: IO () main = typeOf "true" agdaCode where agdaCode :: ..
发布时间:2020-11-22 06:32:45 其他开发

Agda中的Arity泛型编程

如何在Agda中编写泛型函数?是否可以编写完全依赖的和Universe多态的Arity泛型函数? 解决方案 我将以n元合成函数为例. 最简单的版本 open import Data.Vec.N-ary comp : ∀ n {α β γ} {X : Set α} {Y : Set β} {Z : Set γ} -> (Y -> Z) -> N-ary n X Y - ..
发布时间:2020-11-13 03:55:24 其他开发