첫째, 가능한인지 부조화를 없애기 위해 : 무한한 구조에 대한 추론은 문제가되지 않으며, 우리는 항상 그렇게합니다. 구조가 유한하게 설명 가능한 한 문제가되지 않습니다. 다음은 몇 가지 일반적인 유형의 무한 구조입니다.
- 언어 (일부 알파벳 이상의 문자열 집합, 유한 할 수 있음);
- 나무 언어 (알파벳 위에 나무 세트);
- 비 결정적 시스템의 실행 흔적;
- 실수;
- 정수 세트;
- 정수에서 정수까지의 함수 집합; …
가장 큰 고정 점으로서의 공동성
귀납적 정의가 기본 빌딩 블록으로부터 구조를 구축하는 경우, 일치 정의는 구조를 해체 할 수있는 방식으로 구조를 형성합니다. 예를 들어, 요소가 세트에있는 목록 유형은 A
Coq에서 다음과 같이 정의됩니다.
Inductive list (A:Set) : Set :=
| nil : list A
| cons : A -> list A -> list A.
list
nil
cons
∀xy,nil≠consxy
CoInductive colist (A:Set) : Set :=
| conil : colist A
| cocons : A -> colist A -> colist A.
list
의 하위 집합에 대해 동형입니다 colist
. 또한 colist
무한 목록을 포함 cocons
합니다 cocons
.
CoFixpoint flipflop : colist ℕ := cocons 1 (cocons 2 flipflop).
CoFixpoint from (n:ℕ) : colist ℕ := cocons n (from (1 + n)).
flipflop
1::2::1::2::…from 0
0::1::2::…
결과가 더 작은 블록으로 작성된 경우 재귀 정의가 올바르게 구성됩니다. 재귀 호출은 더 작은 입력에서 작동해야합니다. 결과가 더 큰 객체를 생성하는 경우 핵심 curcur 정의가 올바르게 구성됩니다. 인덕션은 생성자를보고, 코인 레이션은 소멸자를 봅니다. 이중성이 어떻게 작은 것에서 큰 것으로 변할뿐만 아니라 출력으로의 입력에도 영향을 미칩니다. 예를 들어, 위의 정의 flipflop
와 from
정의가 올바른 이유는 cocons
두 경우 모두 생성자 호출에 의해 코어 커런트 호출이 보호되기 때문 입니다.
귀납적 물체에 대한 진술에 귀납적 증거가있는 경우, 화 합성 물체에 대한 진술에는 화합 적 증거가 있습니다. 예를 들어, 콜리스트에 대한 무한 술어를 정의 해 봅시다. 직관적으로 무한 콜리스트는로 끝나지 않습니다 conil
.
CoInductive Infinite A : colist A -> Prop :=
| Inf : forall x l, Infinite l -> Infinite (cocons x l).
형태의 콜리스트 from n
가 무한 하다는 것을 증명하기 위해 , 우리는 공동으로 추론 할 수 있습니다. from n
와 같습니다 cocons n (from (1 + n))
. 이는 가설 가설에 의해 무한대 인을 from n
초과 from (1 + n)
하여 무한대임을 나타낸다 from n
.
유사성, 일치 성
증거 기법으로서의 공동화는 또한 초소형 물체에도 적용됩니다. 직관적으로 말하면, 물체에 대한 귀납적 증거는 물체가 어떻게 만들어 졌는가에 근거합니다. 공동 증명은 물체가 어떻게 분해 될 수 있는지에 근거합니다.
결정 론적 시스템을 연구 할 때 귀납적 규칙을 통해 동등성을 정의하는 것이 일반적입니다. 일련의 변환으로 한 시스템에서 다른 시스템으로 이동할 수 있으면 두 시스템이 동일합니다. 이러한 정의는 비결정론 적 시스템이 다른 내부 구조를 갖음에도 불구하고 동일한 (관찰 가능한) 동작을 가질 수있는 여러 가지 방법을 포착하지 못하는 경향이 있습니다. (코 인덕션은 결정적이지 않은 경우에도 비 종료 시스템을 설명하는 데 유용하지만 여기서는 집중하지 않을 것입니다.)
동시 시스템과 같은 비 결정적 시스템은 종종 레이블이 지정된 전이 시스템으로 모델링됩니다 . LTS는 가장자리에 레이블이 지정된 유 방향 그래프입니다. 각 모서리는 시스템의 가능한 전환을 나타냅니다. LTS의 트레이스는 그래프에서 경로 위의 에지 레이블 시퀀스입니다.
ABSL→R⊆S×S
∀(p,q)∈R, if p→αp′ then ∃q′,q→αq′ and (p′,q′)∈R
ABBAR
R1R2R1∪R2
이종성은 공동 속성입니다. 연산자의 가장 큰 고정 점으로 정의 될 수 있습니다. 이는 동등한 상태를 식별하기 위해 확장 될 때 동일하게 유지되는 가장 큰 관계입니다.
참고 문헌
유도 구조의 코크와 미적분학
- 이브 베르토와 피에르 카스 테란 대화식 정리 증명 및 프로그램 개발 — Coq'Art : 유도 구조의 미적분학 . Springer, 2004. Ch. 13. [ 웹 사이트 ] [ 아마존 ]
- 에두아르도 기 메네즈 coq에서 co-inductive 유형의 응용 : 교번 비트 프로토콜의 검증 . 에서 증거들 및 프로그램에 대한 유형 워크샵 에서 숫자 1158 컴퓨터 과학 강의 노트 , 페이지 135-152. Springer-Verlag, 1995. [ Google 도서 ]
- Eduardo Giménez와 Pierre Castéran. Coq의 [Co-] Inductive Types에 대한 튜토리얼. 2007. [ PDF ]
분류 된 전이 시스템 및 이중 시뮬레이션
- 로빈 밀너 통신 및 동시성 . 프렌 티스 홀, 1989.
- Davide Sangiorgi. bisimulation과 coinduction의 기원에 . 프로그래밍 언어 및 시스템에 대한 ACM 거래 (TOPLAS), 31 권 4 호, 2009 년 5 월. [ PDF ] [ ACM ] 관련 과정 슬라이드 : [ PDF ] [ CiteSeer ]
Davide Sangiorgi. Pi-Calculus : 모바일 프로세스 이론 . 케임브리지 대학 출판부, 2003. [ Amazon ]
장 에 종속 유형과 인증 프로그램 A. Chlipala로
- D. 상 기르기. "시뮬레이션 및 공동화 소개". 2011. [ PDF ]
- D. Sangiorgi와 J. Rutten. Bisimulation 및 Coinduction의 고급 주제 . 케임브리지 대학 출판부, 2012. [ CUP ]