값에 따라 달라지는 타입
타입에 값이 포함되면 데이터의 크기나 함수 결과의 관계를 표현할 수 있다. 단순히 리스트라는 사실보다 더 구체적인 제약을 담는 방식이다. 개발자는 타입이 표현하는 조건을 이용해 함수 구현을 구성하고 검사한다.
실행 프로그램과 연결
Idris는 검증 가능한 범용 프로그래밍을 목표로 하며 실행 코드 생성과 외부 함수 연결을 제공한다. 따라서 수학적 표현만 다루는 환경과는 사용 목적이 다를 수 있다. 외부 코드와 연결할 때는 타입으로 확인한 성질과 외부 가정을 구분해야 한다.
버전과 논리적 한계
Idris 1 자료를 Idris 2에 적용할 때는 변경 사항을 확인해야 한다. 프로젝트는 타입 우주 관련 제한 등 남아 있는 사항도 안내한다. 어떤 명제를 표현할 수 있다는 사실만으로 모든 설정에서 같은 논리적 보장을 얻는다고 해석해서는 안 된다.
관련 문서
Agda / Fstar / Flix / Lean 증명 도구