Formalizzare la teoria degli insiemi finiti nella teoria dei tipi


10

La maggior parte degli assistenti di prova ha una formalizzazione del concetto di "insieme finito". Queste formalizzazioni, tuttavia, differiscono selvaggiamente (anche se si spera che siano tutte sostanzialmente equivalenti!). Ciò che non capisco a questo punto è lo spazio di progettazione coinvolto e quali sono i pro e i contro di ogni formalizzazione.

In particolare, vorrei comprendere quanto segue:

  • Posso assiomatizzare insiemi finiti (cioè tipi abitati da un numero finito di abitanti) nella teoria dei tipi semplice? Sistema F? Quali sono gli svantaggi di farlo in questo modo?
  • So che può essere fatto "elegantemente" in un sistema tipicamente dipendente. Ma, da un punto di vista classico, le definizioni risultanti sembrano estremamente aliene. [Non sto dicendo che hanno torto, tutt'altro!]. Ma non capisco nemmeno perché siano "giusti". Capisco che scelgono il concetto corretto , ma la ragione più profonda per "dirlo in quel modo" è ciò che non afferro pienamente.

Fondamentalmente, vorrei un'introduzione ragionata allo spazio di progettazione delle formalizzazioni del concetto di "insieme finito" nella teoria dei tipi.

Risposte:


8

So che può essere fatto "elegantemente" in un sistema tipicamente dipendente. Ma, da un punto di vista classico, le definizioni risultanti sembrano estremamente aliene.

Puoi spiegare cosa intendi per "alieno"? Mi sembra che tu formalizzi il concetto di insieme finito esattamente nello stesso modo nella teoria dei tipi e nella teoria degli insiemi.

Nella teoria degli insiemi, si procede definendo l'insieme come Quindi, si definisce il predicato della finezza come: Dove significa isomorfismo degli insiemi.Fin(n)F i n i t e ( X ) n N .

Fin(n){kN|k<n}
A B
Finite(X)nN.XFin(n)
AB

Nella teoria dei tipi, puoi fare esattamente la stessa cosa! Nota che è un tipo con elementi (poiché il secondo componente della coppia è irrilevante). Quindi, è possibile definire il costruttore del tipo di finiteness come: Dove significa isomorfismo dei tipi.F i n ( n ) n F i n i t e ( X ) Σ n : N .

Fin(n)Σk:N.ifk<nthenUnitelseVoid
Fin(n)nA B
Finite(X)Σn:N.XFin(n)
AB

Alieno perché ho sempre e solo visto le definizioni grezze senza test di accompagnamento che spiega come leggere quelle definizioni. Inoltre il fatto che la solita definizione di Fin, fatta induttivamente, oscura ulteriormente le cose. La tua breve spiegazione è ciò di cui avevo bisogno per farlo cliccare.
Jacques Carette,

5

Fammi vedere se posso aggiungere qualcosa di utile alla risposta di Neel. Lo "spazio di progettazione" per insiemi finiti è molto più ampio in modo costruttivo che è classicamente perché non è necessario concordare costruttivamente varie definizioni di "finito". Varie definizioni nella teoria dei tipi danno concetti leggermente diversi. Ecco alcune possibilità.

Gli insiemi finiti di Kuratowski ( -finite) possono essere caratterizzati come i -semilattices liberi: dato un set, tipo o oggetto , gli elementi del Kemilattice -sem libero possono essere considerati come sottoinsiemi finiti di . In effetti, ciascuno di questi elementi è generato da:X K ( X ) XKXK(X)X

  • l'elemento neutro , che corrisponde all'insieme vuoto, o0
  • un generatore , che corrisponde al singleton , oppure{ x }xX{x}
  • un join di due elementi, che corrisponde a un'unione.ST

Una formulazione equivalente di è: è -finite se, e solo se, esiste e una suriezione .S X K n N e : { 1 , , n } SK(X)SXKnN e:{1,,n}S

Se confrontiamo questo con la definizione di Neel si vede che egli richiede una corrispondenza biunivoca . Ciò equivale a prendere quei sottoinsiemi -finiti che hanno uguaglianza decidibile: . Usiamo per la raccolta di decidibile sottoinsiemi -finite di .K S X x , y S . x = y x y D ( X ) K Xe:{1,,n}SKSXx,yS.x=yxyD(X)KX

Ovviamente è chiuso sotto unioni finite, ma non è necessario chiuderlo sotto intersezioni finite. E non è chiuso in nessuna operazione. Dato che le persone si aspettano che gli insiemi finiti si comportino un po 'come un "aglebra booleano senza una cima", si potrebbe anche provare a definirli come l'algebra booleana generalizzata libera ( , , e relativi complementi ), ma in realtà mai sentito parlare di un tale sforzo.D ( X ) 0 K(X)D(X)0

Quando si decide quale sia la definizione "corretta", è necessario prestare attenzione a ciò che si desidera fare con i set finiti. E non esiste un'unica definizione corretta. Ad esempio, in che senso di "finito" è l'insieme di radici complesse di un finito polinomiale ?

Vedi costruttivamente finito? di Thierry Coquand e Arnaud Spiwack per una discussione dettagliata della finezza. La lezione è che la finitezza è tutt'altro che ovvia in modo costruttivo.


Bene, ne sapevo abbastanza per sapere che la mia domanda non era banale. Ora posso andare a rileggere le parti delle librerie Coq, Isabelle e Agda che si occupano di set finiti e hanno la speranza di capire quali scelte (giochi di parole) hanno fatto.
Jacques Carette,

Mi chiedo quanto gli autori delle biblioteche fossero consapevoli delle scelte. Probabilmente sono appena entrati in una delle definizioni. Una cosa naturale da fare è supporre che abbia un'uguaglianza decidibile perché allora coincide con e tutto procede senza intoppi e molto come nel caso classico. Il problema inizia quando non ha uguaglianza decidibile. K ( A ) D ( A ) AAK(A)D(A)A
Andrej Bauer,

Per essere onesti, si usano spesso set finiti per formalizzare gli aspetti della verifica del programma, e in quel caso si può presumere che valga l'uguaglianza decidibile.
cody,
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.