Esistono linguaggi indecidibili nella logica costruttivista?


24

La logica costruttivista è un sistema che rimuove la Legge del Medio Escluso, nonché la Doppia Negazione, come assiomi. È descritto su Wikipedia qui e qui . In particolare, il sistema non consente prove per contraddizione.

Mi chiedo, qualcuno ha familiarità con come questo influisce sui risultati riguardanti le macchine di Turing e i linguaggi formali? Noto che quasi tutte le prove che una lingua è indecidibile si basano su prove contraddittorie. Sia l'argomento della diagonalizzazione che il concetto di riduzione funzionano in questo modo. Può mai esserci una prova "costruttiva" dell'esistenza di un linguaggio indecidibile e, in tal caso, come sarebbe?

EDIT: Per essere chiari, la mia comprensione della prova per contraddizione nella logica costruttivista era sbagliata, e le risposte hanno chiarito questo.


5
La logica intuitiva non esclude prove che affermino "Assumi , deriva una contraddizione, quindi ¬ ϕ ". Puoi farlo per definizione di ¬ ϕ , come ϕ . Quello che non puoi fare è "Supponi ¬ ϕ , deriva una contraddizione, quindi ϕ ." ϕ¬ϕ¬ϕϕ¬ϕφ
Miles Rout,

2
La tua modifica alla domanda su "ma consente comunque la prova di dichiarazioni negative per contraddizione" fa sembrare la mia risposta come se stessi solo ripetendo ciò che l'interrogante già sapeva :(
gelisam

3
Invece di modificare questa domanda già risposta in modo che ponga una domanda leggermente più difficile, che ne dici di creare (e rispondere) una domanda separata?
Gelisam,

1
@gelisam Sì, come richiedente, sicuramente non supporto la modifica. Lo ripristinerò.
jmite,

Risposte:


18

Sì. Non è necessario il centro escluso per derivare una contraddizione. In particolare, la diagonalizzazione funziona ancora.

Ecco un tipico argomento di diagonalizzazione di Conor McBride. Questa particolare diagonalizzazione riguarda l'incompletezza, non l'indecidibilità, ma l'idea è la stessa. Il punto importante da notare è che la contraddizione che deriva non è della forma "P e non P", ma della forma "x = x + 1".

Naturalmente, ora ti starai chiedendo se la logica costruttiva ammetta "x = x + 1" come contraddizione. Lo fa. La proprietà principale di una contraddizione è che qualsiasi cosa segue da una contraddizione e, usando "x = x + 1", posso effettivamente dimostrare costruttivamente "x = y" per due numeri naturali.

Una cosa che potrebbe essere diversa in una dimostrazione costruttiva è il modo in cui è definito "indecidibile". Nella logica classica, ogni lingua deve essere decidibile o indecidibile; quindi "indecidibile" significa semplicemente "non decidibile". Nella logica costruttiva, tuttavia, "non" non è un'operazione logica primitiva, quindi non possiamo esprimere indecidibilità in questo modo. Invece, diciamo che una lingua è indecidibile se supporre che sia decidibile porta a una contraddizione.

Infatti, anche se "non" non è una primitiva nella logica costruttiva, in genere definiamo "non P" come zucchero sintattico per "P può essere usato per costruire una contraddizione", quindi una prova per contraddizione è in realtà l'unico modo per dimostrare costruttivamente un'affermazione della forma "non P" come "la lingua L è indecidibile".


P¬P¬(P¬P)

9

Quando si parla costruttivamente di affermazioni classiche in modo costruttivo, spesso importa come le formuliamo. Le formulazioni classicamente equivalenti non devono necessariamente essere equivalenti in modo costruttivo. Inoltre importa cosa intendi esattamente con una prova costruttiva, ci sono varie scuole di costruttivismo.

Ad esempio, un'affermazione che afferma che esiste una funzione totale indiscutibile non sarebbe vera in quei gusti di matematica costruttiva che presumono la tesi Church-Turing (cioè ogni funzione è calcolabile) come un assioma.

D'altra parte, se stai attento puoi formularlo in modo tale che sia dimostrabile: per qualsiasi enumerazione calcolabile delle funzioni calcolabili totali, esiste una funzione calcolabile totale che non è presente nell'enumerazione.

Questo post di Andrej Bauer potrebbe essere interessante.

ps: possiamo anche guardare la diagonalizzazione dalla prospettiva teorica di categoria. Vedere


4

Io penso che la prova cardinalità detiene ancora, dimostrando l'esistenza di lingue che non sono computabili lingue (così definitivamente indecidibile).

La prova immediata è piuttosto semplice, osserva semplicemente che le macchine di Turing sono codificate in un alfabeto finito (potrebbe anche essere binario), quindi ce ne sono molte e l'insieme di tutte le lingue su un alfabeto fisso (potrebbe anche essere di nuovo binario ) è l'insieme di tutti i sottoinsiemi dell'insieme di stringhe sopra quell'alfabeto, ovvero l'insieme di potenze di un insieme numerabile e deve essere non numerabile. Quindi ci sono meno macchine di Turing rispetto alle lingue, quindi qualcosa non è calcolabile.

Questo mi sembra abbastanza costruttivo (anche se sarebbe impossibile perseguire fisicamente, ti dà un modo di indicare alcune lingue e sapere che una non è calcolabile).

Potremmo quindi chiederci se è possibile dimostrare che insiemi numerabili e non numerabili hanno cardinalità diverse, in particolare, evitando la diagonalizzazione. Penso che sia ancora possibile. Anche l' argomento originale di Cantor sembra essere adeguatamente costruttivo.

Naturalmente, questo deve davvero essere verificato da qualcuno che sa molto di più sulla logica costruttivista.


3

Penso di essere d'accordo con gli altri sul fatto che l'argomento della diagonalizzazione sia costruttivo, anche se da quello che posso dire c'è un disaccordo su questo in alcuni ambienti.

Voglio dire, supponiamo che stiamo guardando l'insieme di tutte le lingue decidibili. Posso costruire un linguaggio indecidibile usando la diagonalizzazione. Vale la pena notare che non considero il "costruttivismo" e il "finitismo" la stessa cosa, sebbene storicamente penso che si trattasse di archi correlati.

In primo luogo, penso che tutti - anche i costruttivisti - concordino sul fatto che l'insieme delle lingue decidibili sia numerabile. Poiché l'insieme delle macchine di Turing è numerabile (possiamo codificare tutte le TM valide usando stringhe finite), questo accordo segue abbastanza facilmente.

L1,L2,...,Lk,...

  1. 0i
  2. 0iLi0i
  3. 0iLi0i

nL1,L2,...,Ln. Dopo un numero arbitrario (o potenzialmente infinito) di passi, non possiamo aver trovato una lingua nel set che corrisponda a quella che abbiamo appena costruito.

Quindi tecnicamente abbiamo costruito un linguaggio "non decidibile"; se un costruttivista sosterrebbe che "non decidibile" non dovrebbe essere confuso con "indecidibile" è una domanda interessante, ma a cui non sono in grado di rispondere.

Per chiarire, ciò che penso dimostra questo è il seguente: possiamo dimostrare costruttivamente che esistono lingue non decise dalle macchine di Turing. Come si sceglie di interpretare che all'interno di un determinato quadro è una domanda più difficile.

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.