Agda中的布尔函数式编程与定理证明
布尔函数式编程
布尔运算定义
在Agda中,我们可以通过模式匹配和方程来定义布尔运算。例如,对于布尔合取(conjunction),可以通过查看第一个参数来定义:
tt && b = b
ff && b = ff
这里, b 被Agda视为变量,变量名可以是几乎任何Unicode字符,但不能是构造函数名,也不能使用一些内置标点符号,如点、分号和括号。
对于布尔析取(disjunction),定义如下:
_||_ : B → B → B
tt || b = tt
ff || b = b
我们可以使用 Control-c Control-n 在Agda中测试这些定义,例如计算 tt && (ff || tt) 会得到 tt 。
if-then-else操作
在Agda中,我们可以自定义 if-then-else 操作,代码如下:
if_then_else_ : @ {ℓ} {A : Set ℓ} → B → A → A → A
if tt then t else f = t
if ff then t
超级会员免费看
订阅专栏 解锁全文
158

被折叠的 条评论
为什么被折叠?



