Loading AI tools
来自维基百科,自由的百科全书
ACL2(A Computational Logic for Applicative Common Lisp,應用式 Common Lisp 計算邏輯)是由一個程序語言、一套一階邏輯的可拓理論、以及一個機械化的定理證明器所組成的軟體系統。ACL2 從設計上支持基於歸納邏輯理論的自動推理,可應用於軟體或硬體系統的形式化驗證。ACL2 的程式語言及其實現基於 Common Lisp。ACL2 是基於BSD授權發布的開源軟體。
編程範型 | 函數式編程、元編程 |
---|---|
設計者 | 羅伯特·史蒂芬·博伊爾 斯特羅瑟·摩爾 馬特·考夫曼 |
實作者 | 馬特·考夫曼 斯特羅瑟·摩爾 |
面市時間 | 1990年(內部發布) 1996年(公開發布) |
型態系統 | 動態類型 |
作業系統 | 跨平台 |
許可證 | BSD License |
網站 | ACL2 |
啟發語言 | |
Common Lisp、NQTHM |
ACL2 的程式語言可看作是一個函數式(無任何副作用)的 Common Lisp 變體。和 Lisp 一樣,ACL2 使用動態類型系統。ACL2 中所有的函數均是完整定義的(total)——每一個函數均在 ACL2 的全集中將各個對象(輸入)映射到另一個對象(輸出)。
ACL2 的基礎理論已將其程序語言的語義及其內置函數全部公理化。而程序語言中滿足定義原則的用戶自定義部分在擴展該理論的同時亦能保持其邏輯自洽性。ACL2 定理證明器的核心基於項重寫系統,此核心高度可擴展,用戶已證得的定理可以在後續的猜想中被用作現成的數學證明。
ACL2 設計的目標是成為 Boyer–Moore 定理證明器 NQTHM 的一個「工業級別」版本。為了達成此目標,ACL2 涵蓋了支持許多數學和計算理論之工程學應用的有趣特性。ACL2 因為基於 Common Lisp 實現而繼承了其高效率;作為歸納驗證基礎的同一規範亦可以被編譯器編譯及優化,進而在本地執行。
2005年,Boyer-Moore 系列定理證明器(包括 ACL2)的開發者獲得了ACM軟體系統獎,獲獎理由是「作為最高效的定理證明器的先驅和工程師……開發了能夠用於驗證硬體和軟體可靠性的形式化工具」。[1]
ACL2 在若干領域得以應用[2][3]。 例如,在奔騰浮點除錯誤被曝光之後,斯特羅瑟·摩爾 和馬特·考夫曼運用 ACL2 證明了 AMD K5 處理器的浮點數除法運算的正確性。[4] 在 ACL2 文檔的有趣的應用[5]頁面裡有一些關於其實際應用的簡介。
ACL2 的工業界用戶包括超微半導體公司、Centaur科技、國際商業機器股份有限公司、英特爾、甲骨文公司和羅克韋爾柯林斯。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.