作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何证明 Cubical Agda 中的两件事不相等? (v2.6.1, Cubical repo 版本 acabbd9
)
具体来说,这里是作为更高归纳类型的整数:
{-# OPTIONS --safe --warning=error --cubical --without-K #-}
open import Cubical.Core.Everything
open import Cubical.Foundations.Prelude
module Integers where
data False : Set where
data ℕ : Set where
zero : ℕ
succ : ℕ → ℕ
{-# BUILTIN NATURAL ℕ #-}
data ℤ : Set where
pos : ℕ → ℤ
neg : ℕ → ℤ
congZero : pos 0 ≡ neg 0
oddThing2 : pos 0 ≡ congZero i1
oddThing2 = congZero
succNonzero : {a : ℕ} → succ a ≡ 0 → False
succNonzero {a} s = subst t s 0
where
t : ℕ → Set
t zero = False
t (succ i) = ℕ
succ a ≡ 0
的证明进行模式匹配没有了;在非立方 Agda 中,证明只是
oneNotZero ()
,识别不可能的模式。
posInjective : {a b : ℤ} → pos a ≡ pos b → a ≡ b
最佳答案
对于 posInjective
你实际上可以做一个更简单的证明,
fromPos : ℤ → ℕ
fromPos (pos n) = n
fromPos (neg _) = 0
fromPos (congZero i) = refl
posInjective = cong fromPos
.
List
的这样的证据
Cover
的定义很容易得出单射性和独特性.
关于agda - 立方 Agda : how do I prove two things not equal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61439685/
我是一名优秀的程序员,十分优秀!