In parole povere, con un profondo incorporamento di una logica, tu (1) definisci un tipo di dati che rappresenta la sintassi per la tua logica, e (2) fornisci un modello della sintassi e (3) dimostra che gli assiomi sulla tua sintassi sono solidi con rispetto al modello. Con un incorporamento superficiale, si saltano i passaggi (1) e (2) e si inizia con un modello e si dimostrano le implicazioni tra le formule. Ciò significa che gli incastri poco profondi di solito sono meno lavori per scendere da terra, poiché rappresentano lavori che in genere finiresti per fare comunque con un radicamento profondo.
Tuttavia, se hai un profondo incorporamento, di solito è più facile scrivere procedure di decisione riflessiva, poiché stai lavorando con formule che in realtà hanno una sintassi su cui puoi ricorrere. Inoltre, se il tuo modello è strano o complicato, di solito non vuoi lavorare direttamente con la semantica. (Ad esempio, se si utilizza la bionegalità per forzare la chiusura ammissibile o si utilizzano modelli in stile Kripke per forzare le proprietà dei frame nelle logiche di separazione o giochi simili.) Tuttavia, gli incorporamenti profondi quasi certamente ti costringeranno a pensare molto al binding e alle sostituzioni variabili , che riempirà il tuo cuore di rabbia, poiché questa è (a) banale e (b) una fonte infinita di fastidio.
La sequenza corretta che dovresti prendere è: (1) prova a cavartela con un incorporamento superficiale. (2) Quando questo si esaurisce, prova a usare tattiche e preventivi per eseguire le procedure decisionali che desideri eseguire. (3) Se anche questo esaurisce il vapore, rinuncia e usa una sintassi tipizzata in modo dipendente per l'incorporamento profondo.
- Prevedi di prendere un paio di mesi su (3) se è la prima volta che esci. Si avrà bisogno di acquisire familiarità con la fantasia caratteristiche del vostro assistente prova a rimanere sani di mente. (Ma questo è un investimento che pagherà in generale.)
- Se il tuo assistente di prova non ha tipi dipendenti, resta al livello 2.
- Se il linguaggio degli oggetti stesso viene tipizzato in modo dipendente, resta al livello 2.
Inoltre, non provare a salire gradualmente sulla scala. Quando decidi di salire la scala della complessità, fai un passo alla volta. Se fai le cose bit per bit, otterrai molti teoremi che sono strani e inutilizzabili (ad esempio, otterrai più sintassi a metà assolo e teoremi che mescolano sintassi e semantica in modi strani), che otterrai alla fine devono buttare via.
EDIT: Ecco un commento che spiega perché salire gradualmente la scala è così allettante e perché porta (in generale) alla sofferenza.
A ⋆ BioA ⋆ B⟺B ⋆ A( A ⋆ B ) ⋆ C⟺A ⋆ ( B ⋆ C)( Io⋆ A ) ⋆ ( B ⋆ C)A ⋆ ( B ⋆ ( C⋆ io) )
⋆
Questo è vero e funziona! Tuttavia, si noti che la congiunzione è anche ACUI, così come la disgiunzione. Quindi passerai attraverso lo stesso processo in altre prove, con tipi di dati di elenco diversi, quindi avrai tre sintassi per diversi frammenti di logica di separazione e avrai metateoremi per ciascuno di essi, che sarà inevitabilmente diverso, e ti ritroverai a desiderare un metateorema che hai dimostrato per separare la congiunzione per disgiunzione, e poi vorrai mescolare le sintassi e poi diventerai pazzo.
È meglio prendere di mira il frammento più grande che è possibile gestire con uno sforzo ragionevole e farlo.