Słyszałem o indukcji (strukturalnej). Pozwala budować struktury skończone z mniejszych i zapewnia zasady dowodowe dla uzasadnienia takich struktur. Pomysł jest wystarczająco jasny.
A co z koindukcją? Jak to działa? Jak można powiedzieć coś rozstrzygającego o nieskończonej strukturze?
Są (przynajmniej) dwa kąty, którymi należy się zająć, a mianowicie koindukcja jako sposób definiowania rzeczy i jako technika dowodowa.
Jeśli chodzi o koindukcję jako technikę dowodową, jaki jest związek między koindukcją a bisimulacją?
terminology
logic
proof-techniques
formal-methods
coinduction
Dave Clarke
źródło
źródło
Odpowiedzi:
Po pierwsze, aby rozproszyć możliwy dysonans poznawczy: rozumowanie o nieskończonych strukturach nie stanowi problemu, robimy to cały czas. Tak długo, jak struktura jest w pełni opisywalna, nie stanowi to problemu. Oto kilka popularnych typów nieskończonych struktur:
Koinduktywność jako największy punkt stały
Tam, gdzie definicje indukcyjne budują strukturę z elementarnych elementów budulcowych, definicje koindukcyjne kształtują struktury na podstawie tego, w jaki sposób można je rozłożyć. Na przykład typ list, których elementy są w zestawie,
A
zdefiniowano w Coq w następujący sposób:Nieformalnie∀xy,nil≠consxy
list
typ jest najmniejszym typem, który zawiera wszystkie wartości zbudowane z konstruktorównil
icons
, z aksjomatem . I odwrotnie, możemy zdefiniować największy typ, który zawiera wszystkie wartości zbudowane z tych konstruktorów, zachowując aksjomat dyskryminacji:list
jest izomorficzny dla podzbiorucolist
. Ponadtocolist
zawiera nieskończone listy: listy zcocons
nacocons
.flipflop
jest nieskończony (lista okrągły) ; jest nieskończona lista liczb naturalnych 0 : : 1 : : 2 : : ... .from 0
Definicja rekurencyjna jest dobrze sformułowana, jeśli wynik jest zbudowany z mniejszych bloków: wywołania rekurencyjne muszą działać na mniejszych danych wejściowych. Definicja corecursive jest poprawnie sformułowana, jeśli wynik tworzy większe obiekty. Indukcja spogląda na konstruktory, koindukcja spogląda na destruktory. Zwróć uwagę, jak dualność zmienia się nie tylko z mniejszych na większe, ale także z wejściami na wyjścia. Na przykład powodem, dla którego powyższe definicje
flipflop
ifrom
definicje są dobrze sformułowane, jest to, że wywołanie corecursive jest chronione przez wywołanie dococons
konstruktora w obu przypadkach.Tam, gdzie stwierdzenia o obiektach indukcyjnych mają dowody indukcyjne, stwierdzenia o obiektach koindukcyjnych mają dowody koindukcyjne. Na przykład zdefiniujmy nieskończony predykat na kolistach; intuicyjnie, nieskończeni koloni to ci, którzy się nie kończą
conil
.Aby udowodnić, że koloni formy
from n
są nieskończone, możemy wnioskować przez koindukcję.from n
jest równycocons n (from (1 + n))
. To pokazuje, żefrom n
jest większy niżfrom (1 + n)
, który jest nieskończony przez hipotezę koindukcji, a zatemfrom n
jest nieskończony.Różnorodność, właściwość koindukcyjna
Koindukcja jako technika dowodowa dotyczy również obiektów skończonych. Intuicyjnie, dowody indukcyjne na temat obiektu oparte są na jego budowie. Dowody koindukcyjne opierają się na tym, jak można rozłożyć obiekt.
Podczas badania systemów deterministycznych powszechne jest definiowanie równoważności za pomocą reguł indukcyjnych: dwa systemy są równoważne, jeśli można przejść od jednego do drugiego za pomocą serii transformacji. Takie definicje zwykle nie wychwytują wielu różnych sposobów, w jakie systemy niedeterministyczne mogą mieć takie same (obserwowalne) zachowanie, pomimo różnej struktury wewnętrznej. (Koindukcja przydaje się także do opisywania systemów nie kończących się, nawet jeśli są deterministyczne, ale nie na tym się skupię.)
Systemy niedeterministyczne, takie jak systemy współbieżne, są często modelowane przez oznaczone systemy przejściowe . LTS to ukierunkowany wykres, na którym zaznaczone są krawędzie. Każda krawędź reprezentuje możliwe przejście systemu. Ślad LTS to sekwencja etykiet krawędzi nad ścieżką na wykresie.
Podobieństwo jest koindukcyjną właściwością. Można go zdefiniować jako największy punkt stały operatora: jest to największa relacja, która po rozszerzeniu w celu identyfikacji stanów równoważnych pozostaje taka sama.
Bibliografia
Coq i rachunek konstrukcji indukcyjnych
Oznaczone układy przejściowe i bisimulacje
Davide Sangiorgi. Pi-Calculus: teoria procesów mobilnych . Cambridge University Press, 2003. [ Amazon ]
Rozdział w Certyfikowany Programming z typów zależnych przez A. Chlipala
źródło
Rozważmy następującą definicję indukcyjną:
Notacja:
źródło
We can not turn the anchor around, so it goes away
.