OCamllight 라고하는 OCaml의 큰 부분 집합의 의미는 몇 년 전 Owens에 의해 HOL로 공식화되었습니다. 보다 최근에는 Kuple , Hayden 및 Hickey 가 Nuprl에서 더 작은 OCaml 하위 집합의 유형 이론적 의미론을 구현했습니다 .
Coq에도 비슷한 발전이 있습니까?
OCamllight 라고하는 OCaml의 큰 부분 집합의 의미는 몇 년 전 Owens에 의해 HOL로 공식화되었습니다. 보다 최근에는 Kuple , Hayden 및 Hickey 가 Nuprl에서 더 작은 OCaml 하위 집합의 유형 이론적 의미론을 구현했습니다 .
Coq에도 비슷한 발전이 있습니까?
답변:
Arthur Charguéraud의 박사 학위 논문, 기계화 프로그램 검증을위한 특성 공식을 보셨습니까 ?
그는 타입 시스템과 작은 단계 의미론을 유도 관계로 구축하는 대신 Caml 프로그램을 특성 공식으로 변환하는 기술을 제공합니다. 이것은 기본적으로 술어 변압기 의미론의 일반화로, 특히 안전하지 않은 캐스트를 포함하여 매우 큰 Ocaml 서브 세트를 지원합니다 Obj.magic
. 그의 논문에서 인용하자면 :
저는 OCaml 프로그래밍 언어의 하위 집합에 중점을 두 었으며, 이는 순차 가치 별 고급 프로그래밍 언어입니다. CFML의 현재 구현은 고차 함수, 재귀, 상호 재귀 및 다형성 재귀를 포함한 핵심 λ 미적분을 지원합니다. 튜플, 데이터 생성자, 패턴 일치, 참조 셀, 레코드 및 배열을 지원합니다. null 포인터 및 강력한 업데이트에 대한 지원을 추가하는 추가 Caml 라이브러리를 제공합니다.
특정 Caml 프로그램의 정확성을 입증하고 싶을 때 매우 매력적입니다.
Jacques Garrigue의 구조적 다형성 및 재귀 유형을 사용한 ML의 인증 된 구현에 관심이있을 수 있습니다 . 이는 구조적 다형성 을 가진 ML 언어에 대한 정적 및 동적 의미론의 견고성 과 유형 추론의 속성을 설정하여 OCaml의 고급 코너 (다형성 변형 및 객체 유형).
즉,이 작업은 기존 OCaml 프로그램의 기능 세트를 다루는 것보다 유형 시스템의 고급 부품의 건전성을 검증하는 데 더 중점을 둡니다. 기존 OCaml 프로그램의 정확성을 입증하려는 관점에서 CFML이 더 나은 선택이라고 생각합니다.