{{위키데이터 속성 추적}}
[[컴퓨터 과학]] 및 [[수리 논리학]]에서 '''증명 보조기''' 또는 '''대화형 정리 증명기'''는 인간-기계 협업에 의한 형식 증명을 보조하는 소프트웨어 도구이다. 증명 보조기는 대화형 증명 편집기 또는 기타 [[사용자 인터페이스|인터페이스]]가 포함하며, 이를 통해 인간의 증명 검색을 돕는다. 또한 증명 보조기는 증명의 세부 정보를 컴퓨터에 저장하고, 증명의 일부 단계를 [[컴퓨터]]로 계산한다.

== 시스템 비교 ==
{| class="wikitable"
! rowspan="2" |이름
! rowspan="2" |마지막 버전
! rowspan="2" |개발자
! rowspan="2" |구현 언어
! colspan="6" |기능
|-
![[고차 논리]]
!Dependent types
!Small kernel
![[자동 정리 증명]]
!Proof by reflection
!Code generation
|-
|ACL2
|8.3
|Matt Kaufmann and J Strother Moore
|[[커먼 리스프]]|| {{No}}  || {{빈칸|Untyped}}  || {{No}}  || {{Yes}} || {{Yes}}<ref>{{서적 인용|last=Hunt|first=Warren|author2=Matt Kaufmann |author3=Robert Bellarmine Krug |author4=J Moore |author5=Eric W. Smith |title=Theorem Proving in Higher Order Logics|chapter=Meta Reasoning in ACL2|series=Lecture Notes in Computer Science|year=2005|volume=3603|pages=163–178|doi=10.1007/11541868_11|isbn=978-3-540-28372-0|chapter-url=http://www.cs.utexas.edu/~moore/publications/meta-05.pdf}}</ref> || {{빈칸|Already executable}}
|-
|[[Agda]]
|2.6.2
|Ulf Norell, Nils Anders Danielsson, and Andreas Abel (Chalmers and Gothenburg)
|[[하스켈]]|| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{Partial}} || {{빈칸|Already executable}}
|-
|Albatross
|0.4
|Helmut Brandl
|[[OCaml]]|| {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{알 수 없음}} || {{not yet}} Implemented
|-
|Coq
|8.13.2
|INRIA
|[[OCaml]]|| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
|-
|F*
|repository
|[[마이크로소프트 리서치|Microsoft Research]] and INRIA
|F*|| {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{Yes}}<ref>Search for "proofs by reflection": {{ArXiv|1803.06547}}</ref> || {{Yes}}
|-
|HOL Light
|repository
|John Harrison
|[[OCaml]]|| {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{No}}
|-
|HOL4
|Kananaskis-13 (or repo)
|Michael Norrish, Konrad Slind, and others
|[[표준 ML]]|| {{Yes}} || {{No}} || {{Yes}} || {{Yes}} || {{No}} || {{Yes}}
|-
|Idris
|2 0.4.0.
|Edwin Brady
|Idris|| {{Yes}} || {{Yes}} || {{Yes}} || {{알 수 없음}} || {{Partial}} || {{Yes}}
|-
|Isabelle
|Isabelle2021 (February 2021)
|Larry Paulson ([[케임브리지 대학교]]), Tobias Nipkow ([[뮌헨 공과대학교]]) and Makarius Wenzel
|[[표준 ML]], [[스칼라 (프로그래밍 언어)|Scala]]|| {{Yes}} || {{No}}  || {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}}
|-
|Lean
|v3.4.2 (official release)<ref>{{웹 인용|url=https://github.com/leanprover/lean/releases|제목=Lean Theorem Prover Releases page|웹사이트=GitHub}}</ref> v3.39.1 (community release)<ref>{{웹 인용|url=https://github.com/leanprover-community/lean/releases|제목=Lean Community Releases Page|웹사이트=GitHub}}</ref> v4.0.0-m3 (pre-release)<ref>{{웹 인용|url=https://github.com/leanprover/lean4/releases|제목=Lean 4 Releases Page|웹사이트=GitHub}}</ref>
|[[마이크로소프트 리서치]]
|[[C++]]
|{{Yes}}
|{{Yes}}
|{{Yes}}
|{{Yes}}
|{{Yes}}
|{{알 수 없음}}
|-
|LEGO ([[레고]]와 관련 없음)
|1.3.1
|Randy Pollack ([[에든버러 대학교|Edinburgh]])
|[[표준 ML]]|| {{Yes}} || {{Yes}} || {{Yes}} || {{No}} || {{No}} || {{No}}
|-
|Mizar
|8.1.05
|비아위스토크 대학
|[[프리 파스칼|Free Pascal]]|| {{Partial}} || {{Yes}} || {{No}} || {{No}} || {{No}} || {{No}}
|-
|NuPRL
|5
|[[코넬 대학교]]
|[[커먼 리스프]]|| {{Yes}} || {{Yes}} || {{Yes}} || {{Yes}} || {{알 수 없음}} || {{Yes}}
|-
|PVS
|6.0
|SRI International
|[[커먼 리스프]]|| {{Yes}} || {{Yes}} || {{No}} || {{Yes}} || {{No}} || {{알 수 없음}}
|-
|Twelf
|1.7.1
|Frank Pfenning and Carsten Schürmann
|[[표준 ML]]|| {{Yes}} || {{Yes}} || {{알 수 없음}} || {{No}} || {{No}} || {{알 수 없음}}
|}

* [[ACL2]]– Boyer-Moore 전통의 프로그래밍 언어, 1차 논리 이론 및 정리 증명기(대화형 모드와 자동 모드 모두 포함).
* [[Coq]]- 수학적 주장의 표현을 허용하고, 이러한 주장의 증명을 기계적으로 확인하고, 형식적 증명을 찾는 데 도움을 주고, 형식 사양의 구성적 증명에서 인증된 프로그램을 추출한다.
* [[HOL 정리 증명자|HOL 정리 증명기]]– 궁극적으로 [[LCF 정리 증명자|LCF 정리 증명기]]에서 파생된 도구 제품군이다. 이러한 시스템에서 논리적 핵심은 프로그래밍 언어의 라이브러리이다. 정리는 언어의 새로운 요소를 나타내며 논리적 정확성을 보장하는 "전략(strategy)"을 통해서만 도입될 수 있다. 전략 구성을 통해 사용자는 시스템과의 상호 작용이 비교적 적은 중요한 증명을 생성할 수 있다. 여기에 포함된 증명 보조기들은 다음과 같다.
** [http://hol.sourceforge.net/ HOL4]– 아직 활발히 개발 중인 "기본 자손". [[표준 ML|모스크바 ML]] 및 [[표준 ML|Poly/ML]] 모두 지원 . [[BSD 허가서|BSD 스타일 라이센스]]가 있다.
** [[홀 라이트|HOL Light]] – 번성하는 "미니멀리스트 포크". [[OCaml]] 기반.
** [[프루프파워|ProofPower]] – 독점이 된 다음 오픈 소스로 돌아 왔다. [[표준 ML]]을 기반으로 한다.
* IMPS, 대화형 수학 증명 시스템<ref>{{저널 인용|제목=IMPS: An interactive mathematical proof system|저널=Journal of Automated Reasoning|성=Farmer|이름=William M.|성2=Guttman|이름2=Joshua D.|url=https://core.ac.uk/display/23376340|날짜=1993|권=11|호=2|쪽=213–248|doi=10.1007/BF00881906|확인날짜=22 January 2020|성3=Thayer|이름3=F. Javier}}</ref>

* [[이사벨 정리 증명자|Isabelle]]은 HOL의 후속인 대화식 정리 증명자이다. 주요 코드 기반은 BSD 라이선스이지만 Isabelle 배포판은 다른 라이선스를 가진 많은 애드온 도구를 번들로 제공한다.
* [[제이프(소프트웨어)|Jape]] – 자바 기반.
* [[린(증명 조수)|Lean]]
* [http://www.dcs.ed.ac.uk/home/lego LEGO]
* [[마티타|Matita]] – 귀납적 구성의 미적분에 기반한 조명 시스템.
* [[밍로그|MINLOG]] – 1차 최소 논리를 기반으로 하는 증명 보조기.
* [[미자르 시스템|Mizar]] – [[자연 연역]] 스타일의 1차 논리와 [[타르스키-그로텐디크 집합론]]을 기반으로 하는 증명 보조기.
* [[팍스|PhoX]] – 확장 가능한 고차 논리에 기반한 증명 보조기.
* [[프로토타입 검증 시스템]] (PVS)&nbsp;– 고차 논리에 기반한 증명 언어 및 시스템.
* [http://gtps.math.cmu.edu/tps.html TPS 및 ETPS] – 단순 형식 [[람다 대수]]의 독립적인 공식화와 구현을 기반으로 하는 대화형 증명 보조기.
* [http://www.informatik.uni-ulm.de/ki/typelab.html Typelab]
* [https://www.cs.ru.nl/~janz/yarrow/ Yarrow] {{웨이백|url=https://www.cs.ru.nl/~janz/yarrow/ |date=20220527220519 }}

[https://theoremprover-museum.github.io/ 정리 증명기 박물관]은 중요한 문화/과학적 인공물인 정리 증명 시스템의 향후 분석을 위해 소스를 보존하기 위한 이니셔티브이다. 위에서 언급한 많은 시스템의 소스가 여기에 있다.

== 사용자 인터페이스 ==
증명 보조기를 위한 인기 있는 프론트엔드는 [[에든버러 대학교]]에서 개발된 [[이맥스|Emacs]] 기반 Proof General이다. Coq에는 OCaml/[[GTK]]를 기반으로 하는 CoqIDE가 포함되어 있다. Isabelle에는 [[jEdit]] 및 문서 지향 증명 처리를 위한 Isabelle/[[스칼라 (프로그래밍 언어)|Scala]] 인프라를 기반으로 하는 Isabelle/jEdit가 포함되어 있다. [https://marketplace.visualstudio.com/items?itemName=siegebell.vscoq Coq] {{웨이백|url=https://marketplace.visualstudio.com/items?itemName=siegebell.vscoq |date=20211204100900 }}, [https://marketplace.visualstudio.com/items?itemName=makarius.isabelle Isabelle]의 [[비주얼 스튜디오 코드]] 확장도 개발되었다.<ref>{{웹 인용|url=https://marketplace.visualstudio.com/items?itemName=makarius.isabelle|제목=Isabelle|성=Wenzel|이름=Makarius|확인날짜=2 November 2019}}</ref>

== 같이 보기 ==
* [[자동 정리 증명]]
* [[컴퓨터를 이용한 증명]]
* [[QED 선언문]]
* [[형식 검증]]
* [[만족도 모듈로 이론]]
* [[메타매스|Metamath]] – 이 언어에 대한 증명 검사기 및 수천 개의 입증된 정리 데이터베이스와 함께 공식화된 수학을 개발하기 위한 언어

== 참고 문헌 ==

* [[Henk Barendregt]] and [[Herman Geuvers]] (2001). [https://web.archive.org/web/20070727062855/http://www.ncc.up.pt/~nam/aulas/0506/t_coq/barendregt01proofassistants.pdf "Proof-assistants using Dependent Type Systems"]. In ''Handbook of Automated Reasoning''.
* Frank Pfenning (2001). [https://www.cs.cmu.edu/~fp/papers/handbook01.pdf "Logical frameworks"]. In ''Handbook of Automated Reasoning''.
* [[Frank Pfenning]] (1996). "The Practice of Logical Frameworks".
* [[Robert L. Constable]] (1998). "Types in computer science, philosophy and logic". In ''Handbook of Proof Theory''.
* H. Geuvers. "[https://www.ias.ac.in/article/fulltext/sadh/034/01/0003-0025 Proof assistants: History, ideas and future]".
* Freek Wiedijk. "[https://www.cs.ru.nl/~freek/comparison/comparison.pdf The Seventeen Provers of the World]"

== 각주 ==
{{각주}}

== 외부 링크 ==

* ''종속 유형이 있는 인증된 프로그래밍'' 의 [http://adam.chlipala.net/cpdt/html/Intro.html "소개"] .
* [http://video.ias.edu/univalent/appel Coq Proof Assistant 소개] (대화형 정리 증명에 대한 일반적인 소개 포함)
* [http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/interactiveTheoremProvingForAgdaUsers.html Agda 사용자를 위한 대화식 정리 증명] {{웨이백|url=http://www.cs.swan.ac.uk/~csetzer/lectures/intertheo/07/interactiveTheoremProvingForAgdaUsers.html |date=20220121022021 }}
* [https://github.com/johnyf/tool_lists/blob/master/verification_synthesis.md#theorem-provers 정리 증명 도구 목록]

=== 카탈로그 ===
* [https://www.cs.ru.nl/~freek/digimath/bycategory.html#tacticprover 범주별 디지털 수학: Tactic Provers]
* [http://www.mcs.anl.gov/research/projects/AR/others.html 자동 연역 체계 및 그룹]
* [https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/reasonng/atp/systems/0.html 정리 증명 및 자동 추론 시스템]
* [http://www-formal.stanford.edu/clt/ARS/Pages/systems.html 기존의 기계화 추론 시스템 데이터베이스]
* [http://www.nuprl.org/Intro/others.html NuPRL: 기타 시스템] {{웨이백|url=http://www.nuprl.org/Intro/others.html |date=20220522101305 }}
* [https://www.cs.cmu.edu/~fp/lfs-impl.html 특정 논리적 프레임워크 및 구현]
* [[DMOZ]] : [http://www.dmoz.org/Science/Math/Logic_and_Foundations/Computational_Logic/Logical_Frameworks/ 과학: 수학: 논리 및 기초: 계산 논리: 논리 프레임워크] {{웨이백|url=http://www.dmoz.org/Science/Math/Logic_and_Foundations/Computational_Logic/Logical_Frameworks/ |date=20170308171141 }}


[[분류:논리학]]
[[분류:컴퓨터 과학]]
[[분류:컴퓨터 과학 내 논리]]