공동화 란 무엇입니까?


68

나는 (구조적) 유도에 대해 들었습니다. 작은 구조에서 유한 구조를 만들 수 있으며 그러한 구조에 대한 추론에 대한 증명 원칙을 제공합니다. 아이디어는 충분히 분명하다.

그러나 공동화는 어떻습니까? 어떻게 작동합니까? 무한 구조에 대해 결정적인 것을 어떻게 말할 수 있습니까?

해결해야 할 두 가지 각도, 즉 사물을 정의하는 방법과 증명 기법으로 공동화가 있습니다.

증명 기법으로서의 공동화에 관해서는, 공동화와이 시뮬레이션의 관계는 무엇입니까?


4
나는 실제로 이것에 대한 답을 알고 싶습니다 :)
Suresh

1
튜토리얼 용지 는 cs.cornell.edu/~kozen/papers/Structural.pdf 도 참조하십시오 .
mrp

답변:


60

첫째, 가능한인지 부조화를 없애기 위해 : 무한한 구조에 대한 추론은 문제가되지 않으며, 우리는 항상 그렇게합니다. 구조가 유한하게 설명 가능한 한 문제가되지 않습니다. 다음은 몇 가지 일반적인 유형의 무한 구조입니다.

  • 언어 (일부 알파벳 이상의 문자열 집합, 유한 할 수 있음);
  • 나무 언어 (알파벳 위에 나무 세트);
  • 비 결정적 시스템의 실행 흔적;
  • 실수;
  • 정수 세트;
  • 정수에서 정수까지의 함수 집합; …

가장 큰 고정 점으로서의 공동성

귀납적 정의가 기본 빌딩 블록으로부터 구조를 구축하는 경우, 일치 정의는 구조를 해체 할 수있는 방식으로 구조를 형성합니다. 예를 들어, 요소가 세트에있는 목록 유형은 ACoq에서 다음과 같이 정의됩니다.

Inductive list (A:Set) : Set :=
  | nil : list A
  | cons : A -> list A -> list A.

listnilconsxy,nilconsxy

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)).

flipflop1::2::1::2::from 00::1::2::

결과가 더 작은 블록으로 작성된 경우 재귀 정의가 올바르게 구성됩니다. 재귀 호출은 더 작은 입력에서 작동해야합니다. 결과가 더 큰 객체를 생성하는 경우 핵심 curcur 정의가 올바르게 구성됩니다. 인덕션은 생성자를보고, 코인 레이션은 소멸자를 봅니다. 이중성이 어떻게 작은 것에서 큰 것으로 변할뿐만 아니라 출력으로의 입력에도 영향을 미칩니다. 예를 들어, 위의 정의 flipflopfrom정의가 올바른 이유는 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의 트레이스는 그래프에서 경로 위의 에지 레이블 시퀀스입니다.

ABSLRS×S

(p,q)R, if pαp then q,qαq and (p,q)R

ABBAR

R1R2R1R2

이종성은 공동 속성입니다. 연산자의 가장 큰 고정 점으로 정의 될 수 있습니다. 이는 동등한 상태를 식별하기 위해 확장 될 때 동일하게 유지되는 가장 큰 관계입니다.

참고 문헌

  • 유도 구조의 코크와 미적분학

    • 이브 베르토와 피에르 카스 테란 대화식 정리 증명 및 프로그램 개발 — 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 ]

21

다음과 같은 귀납적 정의를 고려해 봅시다.

εTwTawTawTbawT

Tb

T={ε,a,aa,ba,aaa,aba,}=L((baa))Σ.

TT={a,b}

f:2Σ2Σ

f(T)=T{ε}{awwT}{bawawT}

Tff(2Σ,){ε}T

wawawwTTΣbbT=L((baa)ω)

fTT{ε}Σ


표기법:

  • Σ=ΣΣω
  • ΣωΣ

wTawT
{ε}


2
귀납적 인 설명이 적절하기를 바랍니다.
Raphael

ω

ωΣ

좋은 설명입니다. 그러나 나는이 문장을 이해하지 못한다 We can not turn the anchor around, so it goes away.
hengxin

εTεT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.