簡體   English   中英

Coq和Agda之間的差異

[英]Differences between Coq and Agda

這些程序的設計目標是什么?每個程序提供的是另一個程序? 此外,兩個系統是否一致,而且,它們是否基於一些基礎數學理論?

我關心的兩件事:

  1. 易於安裝
  2. 簡單易學

我在搜索,我讀到的內容似乎非常兩極分化,我想知道他們與最客觀(人性)可能的觀點的區別。

Coq的設計考慮了定理,而Agda的設計考慮了依賴類型的編程。

它們在理論方面有些相同(即使它們有差異,Coq在公理中稍微保守一些,並且在默認情況下更接近於CIC的數學基礎),但在那一點上我幾乎同樣相信它們。 例如,他們發現它們的共同誘導處理不一致,但對常規誘導部分的錯誤非常強大。

根據我的經驗,它們都很容易安裝在Linux系統上。 當Cabal工作時,Agda可能會稍微容易一點,但如果沒有,則會更加可怕。 Coq可以捆綁在一起,或者你可以從源代碼構建它,根據我的經驗,它是可以的,但有時它會變得很痛苦,因為你必須關心OCaml和camlp5的版本。

在學習方面,我認為Coq可能更容易學習,因為它有一些相當冗長和節奏緩慢的書籍(軟件基礎,​​Coq'Art等)和一些高級書籍(CPDT)。 對於Agda來說,我的經驗有點苛刻,基本上是Norell的PDF和wiki ......另一方面,Agda需要較少的學習,因為你大多需要依賴類型,語法和標准庫。 在Coq你還必須學習其他很多的戰術!

我的觀點是: - 如果你打算用大證據進行重大開發,Coq可能是你的安全選擇 - 如果你只是對一些依賴類型的編程感興趣,Agda可能是更可愛的選擇

學習其中任何一方都會對學習另一方有很大幫助,那么為什么不嘗試兩者呢? :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM