위키득계정 ↗
기술

Agda

Agda기술
분류
의존 타입 언어와 증명 보조기
이론 기반
Martin-Lof 타입 이론 계열
주요 표현
값으로 인덱싱한 타입
활용
구성적 수학과 프로그램 검증
Agda는 의존 타입을 사용하는 프로그래밍 언어이자 증명 보조기다. 값에 따라 달라지는 타입을 이용해 프로그램의 구조와 수학적 성질을 표현할 수 있다.

타입에 더 많은 정보 담기

일반적인 타입은 값의 종류를 알려 주지만 의존 타입은 길이나 크기 같은 정보도 담을 수 있다. 이를 통해 어떤 연산의 입력과 결과가 맞아야 하는 관계를 표현한다. 타입 검사에서 확인할 수 있는 조건은 작성한 타입 정의에 달려 있다.

프로그램과 논리의 연결

명제를 타입으로 표현하고 그 타입의 값을 구성하는 방식으로 증명을 작성할 수 있다. 이 접근에서 계산과 증명은 연결된다. 다만 원하는 성질을 타입으로 정확히 표현하는 과정과 그 성질을 만족하는 프로그램을 만드는 과정이 모두 필요하다.

검사 조건과 가정

종료성과 정의의 완전성은 증명 용도로 사용할 때 중요한 조건이다. 언어에서 허용하는 예외적 설정이나 추가 가정을 사용했다면 그 영향을 함께 살펴야 한다. 표준 라이브러리와 언어 구현도 별도로 배포되므로 버전 호환성을 확인한다.

관련 문서

Idris 2 / Fstar / Lean 증명 도구 / HOL4