是否可以在Agda中使用PHOAS对仿射λ演算项进行归一化?

时间:2018-08-14 16:20:06

标签: haskell functional-programming coq agda lambda-calculus

在Agda中,可以使用PHOAS方便地表示λ项:

data Term (V : Set) : Set where
  var : V → Term V
  abs : (V → Term V) → Term V
  app : Term V → Term V → Term V

"Parametric Higher-Order Abstract Syntax for Mechanized Semantics"中所述,该方法比Bruijn索引具有多个优势。据我所知,尽管有一个eval : ∀ {V} -> Term V -> Term V函数,给定一个λ项,但不能返回其正常形式-毕竟,Agda是合计的,而λ微积分不是。但是我不知道是否可以为仿射λ项编写这样的eval函数;即那些绑定变量最多出现一次的变量。这种语言显然是全部。

0 个答案:

没有答案