Esempio di violazione delle condizioni di positività rigorosa nei tipi induttivi


9

La maggior parte dei sistemi tipizzati dipendenti presenta condizioni di positività rigorosa per i tipi induttivi. Qualcuno sa un esempio in cui la violazione della condizione porta a incoerenza nel sistema?

Risposte:


10

In realtà è possibile rilassare la positività rigorosa e rimanere coerenti. Ad esempio, è sufficiente avere solo una condizione di positività. Cioè, possiamo accettare definizioni di tipo come

Tμα.(α2)2

dove le variabili di tipo ricorsivo si verificano a sinistra di un numero pari di frecce e mantengono la coerenza.

TTP(P(T))

Poiché le teorie del tipo dipendente sono spesso utilizzate per formalizzare la matematica, i loro progettisti sono generalmente titubanti nell'aggiungere principi che non sono compatibili con una semantica teorica, anche se coerenti.

T

FμFα.(Fαα)α

FF:

map:α,β.(αβ)FαFβ
mapid=idmapfmapg=map(fg

Ora possiamo definire un operatore di tipo per il doppio powerset

C=λα.(α2)2

α

mapC=λf:αβ,a:(α2)2,k:β2.a(λa:α.k(fa))

T=μC


Possiamo fare un esempio che crea un'incoerenza da sola? Il tuo esempio è incoerente se assumiamo anche (abbastanza) mezzo escluso.
Andrej Bauer,

Un altro motivo è che possiamo aggiungere il teorema di FAN ad Agda, dopo di che possiamo dimostrare che il tipo in questione è (isomorfo a) numeri naturali.
Andrej Bauer,

μα.(α2)α

1
Ah, ho frainteso la domanda: il punto è che la positività rigorosa è una condizione sufficiente ma non necessaria. Il tuo esempio (con un evento negativo reale) è incoerente.
Neel Krishnaswami,

Sì, l'ho appena capito. Il mio esempio non trattiene l'acqua.
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.