Intuizione dietro positività rigorosa?


10

Mi chiedo se qualcuno possa darmi l'intuizione dietro perché la rigida positività dei tipi di dati induttivi garantisce una forte normalizzazione.

Per essere chiari, vedo come avere eventi negativi porti a divergenze, cioè definendo:

data X where Intro : (X->X) -> X

possiamo scrivere una funzione divergente.

Ma mi chiedo, come possiamo dimostrare che i tipi induttivi strettamente positivi non consentono divergenze? cioè c'è qualche misura di induzione che ci permette di costruire una prova di forte normalizzazione (usando relazioni logiche o simili)? E da dove viene una tale prova per eventi negativi? Ci sono buoni riferimenti che mostrano una forte normalizzazione per una lingua con tipi induttivi?


Penso che l'idea sia che i tipi strettamente positivi possano convertirsi in tipi W, concettualmente. Anche il tipo non rigorosamente positivo è incompatibile con Coq vilhelms.github.io/posts/… . Si dice che il tipo positivo sia coerente con Agda, ma mi piacerebbe vedere anche una spiegazione concettuale ...
molikto

@molikto Grazie, è utile. Ma pensavo che i tipi W non fornissero i principi di induzione desiderati in una teoria intenzionale? Come possiamo dimostrare una forte normalizzazione per induttivi strettamente positivi in ​​una teoria intenzionale?
jmite

Risposte:


8

Sembra che tu voglia una panoramica degli argomenti di normalizzazione per i sistemi di tipi con tipi di dati positivi. Consiglierei la tesi di dottorato di Nax Mendler: http://www.nuprl.org/documents/Mendler/InductiveDefinition.html .

Come suggerisce la data, questo è un lavoro piuttosto classico. L'intuizione di base è che un λ ordinale può essere associato a qualsiasi elemento di tipo induttivo positivo, ad esempio per il tipo di dati

Inductive Ord = Zero : Ord | Suc : Ord -> Ord | Lim : (Nat -> Ord) -> Ord

Vorremmo ottenere:

λ(t)=0
t
λ(Zero)=0
λ(Suc(o))=λ(o)+1
λ(Lim(f))=supnλ(f n)

dove estende su termini con forme normali. L'avvertenza è che questa interpretazione è definita solo nel terzo caso quando ha anche una forma normale, il che richiede una certa cura nelle definizioni.nf n

Si può quindi definire le funzioni ricorsive per induzione su questo ordinale.

Si noti che questi tipi di dati possono essere definiti già nella teoria degli insiemi classici, come indicato nell'eccellente documento sulle famiglie induttive di Dybjer ( http://www.cse.chalmers.se/~peterd/papers/Inductive_Families.pdf ). Tuttavia, poiché gli spazi delle funzioni sono così enormi, i tipi come Ordrichiedono ordinali molto grandi da interpretare.


Grazie, è molto utile! Sai se tali ordinali possono essere definiti nella stessa teoria dei tipi? cioè se stavo cercando di usare Agda con induzione-ricorsione per modellare una teoria dei tipi con induttivi (ma nessuna induzione-ricorsione), potrei usare qualcosa di simile Orda modellare gli ordinali necessari per mostrare fondamento?
jmite,

@jmite, è possibile, ma ordinali nei teorie costruttive sono un po 'strano, e si potrebbe anche lavorare con gli ordini o alberi ben fondate ( a la W-tipo molikto suggerisce). Potrebbe essere difficile avere un solo tipo uniforme che catturi la fondatezza di ogni induttivo nel linguaggio degli oggetti però ...
cody

1
@cody L'esempio Ord non ti dà un tipo strettamente positivo?
Henning Basold,

1
@HenningBasold sì lo è (ecco perché l'ho usato come illustrazione!). Ma non si comporta esattamente come gli ordinali in una teoria dell'insieme (classica), e certamente non come l'insieme di tutti gli ordinali. In particolare, è un po 'difficile definire un ordine su questi.
codice

1
@HenningBasold Dovrei anche notare che la domanda di jmite riguardava specificamente i tipi strettamente positivi, anche se le informazioni sull'impostazione più generale sono interessanti!
codice

6

Un'altra buona fonte per andare oltre i tipi strettamente positivi è la tesi di dottorato di Ralph Matthes: http://d-nb.info/956895891

Discute le estensioni del Sistema F con tipi (rigorosamente) positivi nel capitolo 3 e dimostra molti risultati di normalizzazione forte nel capitolo 9. Ci sono alcune idee interessanti discusse nel capitolo 3.

  1. Possiamo aggiungere almeno punti fissi per qualsiasi tipo con variabile libera , purché sia ​​possibile fornire un testimone di monotonicità . Questa idea è già presente nel lavoro di Mendler menzionato nel codice. Tali testimoni esistono canonicamente per qualsiasi tipo positivo perché sono sintatticamente monotoni.ρααβ.(αβ)ρρ[β/α]

  2. Quando passiamo da tipi strettamente positivi a tipi positivi, i tipi induttivi non possono più essere visualizzati come alberi (codifica di tipo W). Invece questi introducono una qualche forma di impredicatività perché la costruzione di un tipo induttivo positivo si quantifica già sul tipo stesso. Si noti che questa è una forma piuttosto lieve di impredicatività, poiché la semantica di tali tipi può ancora essere spiegata in termini di iterazione ordinale delle funzioni monotone.

  3. Matthes fornisce anche alcuni esempi di tipi induttivi positivi. Sono particolarmente interessanti

    • il tipo di continuazioni , dove non si verifica in .μ.1+((αρ)ρ)αρ
    • il tipo che funziona per qualsiasi tipo trasformandolo in un tipo positivo. Si noti che questo utilizza l'impredicatività del Sistema F in modo molto pesante.μαβ.(αβ)ρ[β/α]ρρ

Matthes utilizza anche tipi induttivi positivi per analizzare la doppia negazione, ad esempio, in questo documento: https://www.irit.fr/~Ralph.Matthes/papers/MatthesStabilization.pdf . Introduce un'estensione di di Parigot e dimostra una forte normalizzazione.λμ

Spero che questo aiuti con la tua domanda.

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.