LCF는 ML 프로그래밍 언어 (오늘 우리는 OCaml, SML, F #이라고도 함)를 포함하여 Coq, Isabelle, HOL의 모든 시스템의 할아버지입니다. 예, 저는 더 큰 LCF 가족의 일원으로 Coq를 포함시키고 있습니다. 미국 - 미국의 증거 단말기 (특히 ACL2), 또는 전혀 관련이없는 미자르에 비해 COQ 주로의 공유 된 생각 때문에, 아주 가까운 이사벨과 HOLs 문화적입니다 전술 .
어쨌든 전술을 다시 작성, 변환, 연결 도입 또는 제거에 대한 우발적 인 관찰에서 제거 된 전술은 무엇입니까?
여기서 주요 레이어링 원리는 Milner의 LCF에서 상속되었습니다.
thm
원래 LCF 접근 방식의 추상 데이터 유형 또는 패밀리의 유형 이론 분기 (Coq, Matita)에서 별도의 증명 용어를 확인하여 핵심 추론 (앞으로 추론 ). 이를 통해 입증자가 이론으로 간주하는 결과에 대한 논리적 근거 를 얻을 수 있습니다. 따라서 ⊢ A와 ⊢ B를 취하고 ⊢ A ∧ B를 제공하는 기본 추론을 가질 수 있습니다. 또 다른 기본 추론은 ⊢ t = u를 줄 수 있습니다. 여기서 u는 베타 정규형 t입니다. 그러나 이러한 메커니즘 중 어느 것도 전술이 아니며 표준 논리와 같은 추론 규칙 입니다.
목표 지향적 증거 (역 추론). 아이디어는 "목표 상태"에 대한 개념을 구체화하여 점점 더 많은 하위 목표로 나누고 하위 목표를 닫을 때까지 모든 목표가 해결 될 때까지 작동한다는 것입니다. 목표 상태를 끝내면 프로세스에서 특정 정리가 튀어 나옵니다. LCF는 목표에 대한 추가 논리 인프라를 도입했으며, 이는 여전히 HOL에 있습니다. 전술은 목표를 세분화하고 세분화에 대한 정당성을 제공하는 ML 기능입니다. 증명의 최후에, 정당화는 역순으로 재생되어 상기 스케치 된 원시 추론에 따라 정방향으로 증명을 생성한다.
Coq와 Matita는 여전히이 LCF 원칙에 매우 가깝습니다. Isabelle은 여기서 다릅니다. 1989 년 초 Larry Paulson은 목표와 전술에 대한 개념을 개혁하여이를 Isabelle의 "순수한"논리적 프레임 워크 인 논리에 더 가깝게 만들었습니다. Isabelle / Pure는 의미 ==> 및 수량화 기능을 갖춘 최소 고차 로직을 제공합니다 !! 자연 공제 규칙의 구조와 목표 상태를 모두 나타냅니다.
예를 들어, ⊢ A ==> B ==> A ∧ B는 논리 프레임 워크의 정리 인 (객체 논리의) 결합 도입 규칙입니다.
목표 상태는 초기 주장 C에 대해 ⊢ C ==> C로 시작하는 정리 일 뿐이며, 중간 상태에서 ⊢ X ==> Y ==> Z ==> C로 조정됩니다. 여기서 X, Y, Z 현재 하위 목표이며 프로세스는 ⊢ C (하위 목표 없음)로 끝납니다.
목표 상태에 대한 개념 (예 : 위의 Isabelle 하나)을 고려할 때 전술 은 목표 상태를 (0, 1 이상) 후속 조치에 매핑하는 함수입니다. 목표 상태. 또한, 전술 은 전술적 기능, 예를 들어 순차적 구성, 선택, 반복 등을 표현하기 위한 전술적 기능의 조합기 이다. 실제로, 전술 및 전술의 언어는 파서 조합기의 "성공 목록"접근법과 관련된다.
전술을 통해 목표 세분화의 특정 전략을 체계적으로 설명 할 수 있습니다. 1970/80 년대 LCF에서 발명 한 이래로 성공을 거두었지만 악명 높은 읽을 수없는 증명 스크립트를 생성합니다.
전술 언어의 일부 측면에 대한 최근 개요는 A. Asperti et al., PLMMS 2009에 의해 논문에 제공됩니다. 워크샵 진행 페이지 22를 참조하십시오 .
미자르와 이사 벨레 / 이자르는 인간이 읽을 수있는 구조화 된 추론에 대한 대안적인 접근 방식으로 언급되어 왔으며 , 그러한 의미에서 전술을 기반으로하지는 않습니다. Mizar는 LCF 가족과 관련이 없으므로 전술 용어를 알지 못합니다. Isabelle / Isar는 전술적 전통을 어느 정도 통합하고 있지만 증명 방법에 대한 개념은 좀 더 구조화되어 있습니다 (명백한 Isar 증명 컨텍스트, 체인 된 사실의 명시 적 표시 및 추론 과정에서 내부 목표 해킹 방지).
전술 언어에 대한 더 많은 개혁과 재검토가 지난 수십 년 동안 일어났다. 예를 들어, 최근 Coq 커뮤니티의 지점은 전통적인 Ltac 대신 SSReflect (G. Gonthier)를 선호합니다.