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 ) XK∨X∨K( X)X
- l'elemento neutro , che corrisponde all'insieme vuoto, o0
- un generatore , che corrisponde al singleton , oppure{ x }x∈X{x}
- un join di due elementi, che corrisponde a un'unione.S∨T
Una formulazione equivalente di è: è -finite se, e solo se, esiste e una suriezione .S ⊆ X K n ∈ N e : { 1 , … , n } → SK(X)S⊆XKn∈N 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}→SKS⊆X∀x,y∈S.x=y∨x≠yD(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.