Coinduction nedir?


68

(Yapısal) indüksiyon duydum. Küçük yapılardan sonlu yapılar oluşturmanıza izin verir ve bu tür yapılar hakkında akıl yürütme için kanıt ilkeler sunar. Fikir yeterince açık.

Peki ya coinduction? O nasıl çalışır? Sonsuz bir yapı hakkında kesin bir şey nasıl söylenebilir?

Bir şeyi tanımlamanın bir yolu olarak ve bir ispat tekniği olarak eşzamanlamayı ele almak için (en azından) iki açı vardır.

Kanıtlamanın bir kanıtlama tekniği olarak ele alınması ile ilgili olarak, ortak uyarlama ve bisimülasyon arasındaki ilişki nedir?


4
Aslında bunun cevabını bilmek istiyorum :)
Suresh

Yanıtlar:


60

İlk olarak, olası bir bilişsel uyuşmazlığı gidermek: sonsuz yapılar hakkında düşünmek sorun değil, bunu her zaman yapıyoruz. Yapı son derece açıklanabilir olduğu sürece, bu bir problem değil. İşte birkaç yaygın sonsuz yapı türü:

  • diller (sonlu olabilen bazı alfabelere göre dizeler kümesi);
  • ağaç dilleri (bazı alfabelerin üzerindeki ağaç kümeleri);
  • deterministik olmayan bir sistemin yürütme izlerini;
  • gerçek sayılar;
  • tamsayı kümeleri;
  • tam sayılardan tam sayılara kadar fonksiyon kümeleri; ...

En büyük sabitleme noktası olarak ortak iletkenlik

Endüktif tanımların, temel yapı taşlarından bir yapı oluşturduğu durumlarda, ortak tanımlamalar yapıları yapılarının nasıl yapılandırılabileceğinden şekillendirir. Örneğin, elemanları bir kümede bulunan listelerin türü ACoq'da şöyle tanımlanır:

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.

listbir altküme izomorfiktir colist. Buna ek olarak, colistsonsuz listeleri içerir: listelerini ile coconsüzerine 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::

Sonuç küçük bloklardan oluşturulmuşsa özyinelemeli bir tanım iyi oluşturulmuştur: özyinelemeli çağrılar daha küçük girdilerde çalışmalıdır. Sonuç, daha büyük nesneler oluşturursa, tutarlı bir tanım iyi oluşturulmuştur. İndüksiyon, inşaatçılara bakar, coinduction yıkıcılara bakar. Dualitenin nasıl daha küçükten büyüğe değil, aynı zamanda çıkışlara nasıl girdi yaptığını not edin. Örneğin, yukarıdaki flipflopve fromtanımlarının iyi biçimlendirilmiş olmasının nedeni, coconsher iki durumda da korecifif çağrının yapıcıya yapılan bir çağrı ile korunmasıdır .

Endüktif nesneler hakkındaki ifadelerin indüktif provalara sahip olduğu durumlarda, endüktif nesneler hakkındaki ifadelerin de ortak provaları vardır. Mesela, sınırlayıcılar üzerindeki sonsuz yüklemeyi tanımlayalım; sezgisel olarak, sonsuz kolistler bitmeyen kişilerdir conil.

CoInductive Infinite A : colist A -> Prop :=
  | Inf : forall x l, Infinite l -> Infinite (cocons x l).

Formun destekçilerinin from nsınırsız olduğunu kanıtlamak için, eşgüdümle gerekçe gösterebiliriz. from neşittir cocons n (from (1 + n)). Bu, coinduction hipotezi ile sınırsız from nolandan daha büyük olduğunu from (1 + n)ve dolayısıyla from nsınırsız olduğunu gösterir.

Eşdeğerlik, ortak bir özellik

Kanıtlama tekniği olarak tamamlama da parasal nesnelere uygulanır. Sezgisel olarak konuşursak, bir nesneye ilişkin endüktif ispatlar nesnenin nasıl inşa edildiğine dayanır. Ortak deliller, nesnenin nasıl parçalanabileceğini temel alır.

Deterministik sistemler üzerinde çalışırken, endüktansı endüktif kurallar ile tanımlamak yaygındır: eğer birinden diğerine bir dizi dönüşümle ulaşabiliyorsanız iki sistem aynıdır. Bu tür tanımlamalar, deterministik olmayan sistemlerin, farklı iç yapıya sahip olmalarına rağmen, aynı (gözlenebilir) davranışa sahip olmaları ile sonuçlanabilecek birçok farklı yolu yakalama konusunda başarısız olma eğilimindedir. (Coinduction, aynı zamanda, determinist olsalar bile, sonlandırmayan sistemleri tanımlamak için kullanışlıdır, ancak burada odaklanacağım şey bu değildir.)

Eşzamanlı sistemler gibi belirsiz sistemler genellikle etiketli geçiş sistemleri tarafından modellenir . Bir LTS, kenarların etiketlendiği yönlendirilmiş bir grafiktir. Her kenar sistemin olası bir geçişini temsil eder. Bir LTS izi, grafikteki bir yol üzerindeki kenar etiketlerinin dizisidir.

ABSLRS×S

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

ABBAR

R1R2R1R2

Yaygınlık ortak bir özelliktir. Bir operatörün en büyük sabitleme noktası olarak tanımlanabilir: eşdeğer durumları tanımlamak için genişletildiğinde aynı kalan en büyük ilişkidir.

Referanslar

  • Coq ve endüktif yapıların hesabı

    • Yves Bertot ve Pierre Castéran. İnteraktif Teorem Kanıtlama ve Program Geliştirme - Coq'Art: Endüktif Yapıların Hesabı . Springer, 2004. Ch. 13. [ web sitesi ] [ Amazon ]
    • Eduardo Giménez. Coq'da ko-endüktif türlerin uygulanması: alternatif bit protokolünün doğrulanması . In Kanıtlarının ve Programları Türleri Çalıştayının , sayının 1158 Bilgisayar Bilimleri Ders Notları , sayfalar 135-152. Springer-Verlag, 1995. [ Google Kitaplar ]
    • Eduardo Giménez ve Pierre Castéran. Coq. [Co-] Endüktif Tipleri Üzerine Bir Eğitim. 2007. [ PDF ]
  • Etiketli geçiş sistemleri ve bimülasyonlar

    • Robin Milner. İletişim ve Eşzamanlılık . Prentice Salonu, 1989.
    • Davide Sangiorgi. Bisimülasyon ve coinduction'ın kökenleri üzerine . Programlama Dilleri ve Sistemlerinde ACM İşlemleri (TOPLAS), cilt 31 sayı 4, Mayıs 2009. [ PDF ] [ ACM ] İlişkili kurs slaytları: [ PDF ] [ CiteSeer ]
    • Davide Sangiorgi. Pi-Calculus: Mobil Süreçler Teorisi . Cambridge University Press, 2003. [ Amazon ]

    • Bir bölüm içinde Bağımlı Türleri ile Sertifikalı Programlama A. Chlipala tarafından

    • D. Sangiorgi. "Bisimülasyon ve Eşlenikliğe Giriş". 2011. [ PDF ]
    • D. Sangiorgi ve J. Rutten. Bisimülasyon ve Coinduction'da İleri Konular . Cambridge University Press, 2012. [ CUP ]

21

Aşağıdaki endüktif tanımı ele alalım:

ε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{ε}Σ


Gösterim:

  • Σ=ΣΣω
  • ΣωΣ

wTawT
{ε}


2
Umarım endüktif bir açıklama uygundur.
Raphael

ω

ωΣ

Güzel açıklama. Ancak bu cümleyi anlamıyorum We can not turn the anchor around, so it goes away.
hengxin

εTεT
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.