You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Agda加载《Programming Language Foundations in Agda》示例失败求助

解决Agda标准库2.0适配《Programming Language Foundations in Agda》代码的问题

核心原因

Agda标准库2.0确实移除了Eq.≡-Reasoning模块中的_≡⟨⟩_运算符,这个原本用于等式推理链占位的空步骤符号被移除后,直接调用就会触发你看到的解析错误,这就是问题的根源。

三种可行解决办法

  • 直接省略空步骤:如果代码里_≡⟨⟩_只是用来占位、没有实际证明内容,直接删掉即可。比如原代码:

    x ≡⟨⟩
    y ≡⟨ refl ⟩
    z ∎
    

    修改后:

    x ≡⟨ refl ⟩
    y ∎
    
  • 用_≡⟨ refl ⟩_替代:要是想保留步骤结构的可读性,用_≡⟨ refl ⟩_替换空的_≡⟨⟩_就行——refl是自反性证明,和空步骤语义完全一致:

    x ≡⟨ refl ⟩
    y ≡⟨ some-proof ⟩
    z ∎
    
  • 自定义空步骤运算符:如果习惯旧写法,可以自己在代码模块里定义一个和旧版_≡⟨⟩_功能相同的运算符:

    open import Relation.Binary.PropositionalEquality using (_≡_; refl; _≡⟨_⟩_; _∎)
    
    _≡⟨⟩_ : ∀ {a} {A : Set a} (x y : A) → x ≡ y → x ≡ y
    x ≡⟨⟩ y p = p
    

    定义后就能像以前一样使用_≡⟨⟩_了。

额外提醒

《Programming Language Foundations in Agda》是基于旧版标准库编写的,用v2.0会碰到不少API变动。要么对照标准库2.0的文档逐个调整代码,要么直接用和书籍匹配的标准库版本,能省不少适配功夫。

内容的提问来源于stack exchange,提问作者Werner Germán Busch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:51:11