Che cos'è l'induzione-induzione?


11

Che cos'è l' induzione-induzione ?

Le risorse che ho trovato sono:

I primi due riferimenti sono troppo brevi per me e gli ultimi due sono troppo tecnici. Qualcuno può spiegarlo in parole povere? Sarebbe meglio se c'è il codice Agda.


C'è il codice Agda nella tua quarta citazione.
Gilles 'SO- smetti di essere malvagio' il

Certo, ma sarebbe molto difficile leggere quell'enorme quantità di codice. E (immagino) super facile solo vedendo 1 o 2 esempi.
盛安安

Risposte:


13

03-10-2016 supplementare: ho confuso induzione-induzione e induzione-ricorsione (non la prima volta che l'ho fatto!). Mi scuso per il casino. Ho aggiornato la risposta per coprire entrambi.

Trovo illuminanti le spiegazioni nel documento di Forsberg & Setzer Un'assiomatizzazione finita delle definizioni induttive-induttive .

Induzione-ricorsione

Una definizione induttiva-ricorsiva è una definizione in cui definiamo un tipo A e una famiglia di tipi B:AType contemporaneamente in un modo speciale:

  1. A è definito come un tipo induttivo.
  2. B è definito da ricorsioneA .
  3. Fondamentalmente, la definizione di A può utilizzare B .

Senza il terzo requisito, potremmo definire prima A e poi separatamente B .

Ecco un piccolo esempio. Definire A induttivamente per avere i seguenti costruttori:

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

La famiglia di tipi B è definita da

  • 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

Induzione induzione

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


perché diavolo qualcuno dovrebbe definire tali tipi di dati D:
盛安安

7
Per insegnare cos'è un tipo induttivo-induttivo. Potrei darti un esempio reale, vale a dire un universo di tipo, ma sarebbe confuso.
Andrej Bauer,

3
@AndrejBauer Mi sembra più una ricorsione a induzione. L'induzione-induzione è quando la famiglia di tipi è definita come un tipo induttivo .
gallais,

2
Oops, hai assolutamente ragione. Lo aggiusterò.
Andrej Bauer,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.