我試圖從Software Foundations, vol. 2端口msubst_R Agda。我試圖通過對術語使用類型化表示來避免繁重的工作。下面是我的一切到msubst_R;我認爲以下一切都很好,但這是有問題的部分。 open import Data.Nat
open import Relation.Binary.PropositionalEquality hiding (subst)
o
我一直認爲已經證明pred不能在任何數據類型編碼的微積分結構中以恆定時間表示。現在,考慮到這一點編碼NATS: S0 : ∀ (r : *) . (r -> r) -> r -> r
S0 = λ s z . z
S1 : ∀ (r : *) (((∀ (r : *) . (r -> r) -> r -> r) -> a) -> (a -> a)))
S1 = λ s z . (s (λ
我有一個編程語言AST的數據類型,我想推理一下,但AST的約有10種不同的構造函數。 data Term : Set where
UnitTerm : Term
VarTerm : Var -> Term
...
SeqTerm : Term -> Term -> Term
我想寫一個函數,該語言的語法樹具有可判定的相等性。理論上,這很簡單:沒有太複雜的