agda - 带有模糊终止的条款
问题描述
我正在尝试在 agda 中定义二进制数,但 agda 看不到它⟦_⇑⟧
正在终止。我真的不想打破可访问性关系。如何向 agda 显示 n 变小?
module Binary where
open import Data.Nat using (ℕ; _+_; +-suc)
open ℕ
2* : ℕ → ℕ
2* n = n + n
data Parity : ℕ → Set where
: ∀ k → Parity (2* k)
: ∀ k → Parity (1 + 2* k)
parity : ∀ n → Parity n
parity zero = 0
parity (suc n) with parity n
parity (suc .(k + k)) | k = k
parity (suc .(suc (k + k))) | k rewrite sym (+-suc k k) = (suc k)
data : Set where
:
: →
: →
⟦_⇓⟧ : → ℕ
⟦ ⇓⟧ = 0
⟦ b ⇓⟧ = 2* ⟦ b ⇓⟧
⟦ b ⇓⟧ = 1 + 2* ⟦ b ⇓⟧
⟦_⇑⟧ : ℕ →
⟦ zero ⇑⟧ =
⟦ suc n ⇑⟧ with parity n
⟦ suc .(k + k) ⇑⟧ | k = ⟦ k ⇑⟧
⟦ suc .(suc (k + k)) ⇑⟧ | k = ⟦ k ⇑⟧
错误:
Termination checking failed for the following functions:
⟦_⇑⟧
Problematic calls:
⟦ k ⇑⟧
解决方案
推荐阅读
- php - MySQL 检查日期列是否为 DST
- wagtail - Wagtail ModelAdmin中可排序InlineFields中的条件默认条目
- java - Java Swing 问题 - 调色板菜单为空
- python - discord.py - 猜谜游戏没有反应
- c++ - 为什么这个服务器可以处理 python 请求而不是 node.js?(ECCONRESET)
- binary - WSO2 ESB 7.1.0 二进制响应被截断为 375B
- javascript - html中每页的动态脚注
- flutter - 如何解决问题 adb 服务器版本 (41) 与此客户端 (40) 不匹配?
- python - 如何将 Nonetype 转换为整数?
- javascript - 单点登录会影响运行哪个 javascript 和 cshtml