Was ist Induktion-Induktion?


11

Was ist Induktion-Induktion ?

Die Ressourcen, die ich gefunden habe, sind:

Die ersten beiden Referenzen sind mir zu kurz und die beiden letzteren zu technisch. Kann es jemand in Laienform erklären? Es wäre besser, wenn es Agda-Code gäbe.


Es gibt Agda-Code in Ihrem vierten Zitat.
Gilles 'SO - hör auf böse zu sein'

Sicher, aber es wäre super schwer, diese riesige Menge an Code durchzulesen. Und (ich denke) super einfach, wenn man nur 1 oder 2 Beispiele sieht.
2.

Antworten:


13

Supplemental 2016-10-03: Ich habe Induktion-Induktion und Induktions-Rekursion gemischt (nicht das erste Mal, dass ich das gemacht habe!). Ich entschuldige mich für das Durcheinander. Ich habe die Antwort aktualisiert, um beide abzudecken.

Ich finde die Erklärungen in der Arbeit von Forsberg & Setzer Eine endliche Axiomatisierung induktiv-induktiver Definitionen aufschlussreich.

Induktionsrekursion

Eine induktiv-rekursive Definition ist eine Definition, bei der wir auf besondere Weise gleichzeitig einen Typ A und eine Typfamilie B:AType :

  1. A ist als induktiver Typ definiert.
  2. B wird durch Rekursion aufA .
  3. Entscheidend ist , dass die Definition von A kann verwendet werden B .

Ohne die dritte Anforderung könnten wir zuerst A und dann separat B .

Hier ist ein Babybeispiel. Definieren Sie A induktiv, um die folgenden Konstruktoren zu haben:

  • a:A
  • :(x:AB(x))A

Die Typfamilie B ist definiert durch

  • B(a)=bool
  • B((x,f))=nat .

A

a:A.
B(a)bool
(a,false)
(a,true)
AB((a,false))=B((a,true))=natn:nat
((a,false),n):A
((a,true),n):A
B(((a,true),n))=nat
m:nat
(((a,true),n),m):A
(((a,false),n),m):A
A

Induktion-Induktion

AB:AType

  1. A
  2. BA
  3. AB

B

B(c())=
c()ABB

A

  • a:A
  • :(x:AB(x))A

B

  • Tru:B(a)
  • Fal:B(a)
  • x:Ay:B(x)Zer:B((x,y))
  • x:Ay:B(x)z:B((x,y))Suc(z):B((x,y))

BB(a)B((x,y))


Warum zum Teufel sollte jemand solche Datentypen definieren
?

7
Um zu lehren, was ein induktiv-induktiver Typ ist. Ich könnte Ihnen ein reales Beispiel geben, nämlich ein Typuniversum, aber das wäre verwirrend.
Andrej Bauer

3
@AndrejBauer Das sieht für mich eher nach Induktionsrekursion aus. Induktion-Induktion ist, wenn die Typenfamilie als induktiver Typ definiert ist .
Gallais

2
Ups, du hast absolut recht. Ich werde es reparieren.
Andrej Bauer

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.