gpt4 book ai didi

functional-programming - 如何在 Agda 类型声明中定义别名?

转载 作者:行者123 更新时间:2023-12-04 02:00:51 26 4
gpt4 key购买 nike

我的代码:

law : ∀ a x → ((suc a) * (suc a) ÷ (suc a) ⟨ x ⟩) →ℕ ≡ (suc a , refl)
law a x = refl

我觉得太多了 suc a我想给 suc a 起一个别名,类似(这段代码只是描述了我的想法,它不会编译):
law : ∀ a x → ((s : suc a) * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl)
law a x = refl

我能做到吗?

最佳答案

当然。您可以使用 let

law : ∀ a x → let s = suc a in (s * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl)
law a x = refl

或定义一个匿名模块:
module _ (a : ℕ) where
s = suc a
law : ∀ x → (s * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl)
law x = refl

模块外 law具有与您提供的相同的类型签名。

关于functional-programming - 如何在 Agda 类型声明中定义别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47387983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com