相关疑难解决方法(0)

在 Agda 中编写证明

我想写出“对于所有 x 都存在 y 使得 x < y 且 y 是偶数”这一陈述的证明。我是这样试的...

-- ll means less function i.e ' < '

_ll_ : ? ? ? ? Bool
0 ll 0 = false
0 ll _ = true
a ll 0 = false
(suc a) ll (suc b) = a ll b 

even : ? ? Bool
even 0 = true
even 1 = false
even (suc (suc n)) = even n

Teven : Bool ? Set
Teven true = ? …
Run Code Online (Sandbox Code Playgroud)

functional-programming agda

5
推荐指数
1
解决办法
496
查看次数

这种类型中使用的agda命题 - 它是什么意思?

我从"残酷的Agda简介"中了解到这一点http://oxij.org/note/BrutalDepTypes/

假设我们想要在偶数上定义除以2.我们可以这样做:

div : (n : N) -> even n -> N
div zero p = zero
div (succ (succ n)) p= succ (div n p)
div (succ zero) ()
Run Code Online (Sandbox Code Playgroud)

N是自然数,甚至是以下"命题"

even : N -> Set
even zero = \top
even (succ zero) = \bot
even (succ (succ n)) = even n
data \bot : Set where
record \top : Set where
Run Code Online (Sandbox Code Playgroud)

当你评估表达式div(succ(succ zero))你得到\ p - > succ零这是你所期望的.但是,我不明白的是如何解释\ p.我也不明白代码f:\ bot - > N f = div(succ zero)的意思.据我所知,\ bot暗示A代表任何A ......所以类型是有效的.我想我认为依赖类型将允许我以这样的方式写div:div(succ …

agda dependent-type

2
推荐指数
1
解决办法
540
查看次数