Calculul construcțiilor

Proiectarea structurilor ( CoC limba engleză calculul construcțiilor ) este un lambda calcul tip de ordin superior , în care tipurile sunt valori de primă clasă. Prin urmare, este posibil, în CoC, să se definească funcții care merg de la numere întregi la numere întregi, dar și numere întregi la tipuri sau tipuri la tipuri.

CoC se normalizează puternic , deși, conform teoremei incompletitudinii lui Gödel , este imposibil să se demonstreze această proprietate chiar în CoC, deoarece implică consistența sa .

CoC a fost inițial dezvoltat de Thierry Coquand .

CoC a fost sursa primelor versiuni ale asistentului Coq proof . Următoarele versiuni au fost construite din calculul construcțiilor inductive, care este o extensie a CoC care integrează tipuri de date inductive . În CoC-ul original, tipurile de date inductive trebuiau emulate folosind funcția lor de distrugere.

Modul de a defini calculul construcțiilor prin trei tipuri de dependențe se numește cub lambda și se datorează lui Henk Barendregt .

Bazele proiectării construcțiilor

Calculul construcțiilor poate fi considerat ca o extensie a corespondenței Curry-Howard . Acesta din urmă asociază fiecare termen al lambda-calculului pur și simplu tastat cu o dovadă în deducție naturală în logica propozițională intuiționistă și invers. Calculul construcțiilor extinde acest izomorfism la dovezile din calculul predicatelor intuiționiste în ansamblu, care include, prin urmare, dovezi ale formulelor cuantificate (care vor fi numite și „propoziții”).

Termeni

Un termen al calculului construcțiilor este construit folosind următoarele reguli:

Calculul construcțiilor are cinci tipuri de obiecte:

  1. Dovezile , care sunt ceea ce privește tipurile de propuneri  ;
  2. De Propunerile , care sunt , de asemenea , numite baieti mici  ;
  3. cele predicate , care sunt funcții care propunerile de returnare;
  4. tip larg , care sunt tipuri de predicate ( de exemplu , P este un tip larg);
  5. T în sine, care este tipul de tipuri largi.

Judecăți

În calculul construcțiilor, o judecată este o deducție de tipare:

care poate fi citit ca implicație

dacă variabilele sunt tipuri , atunci termenul este tip .

Judecățile valabile pentru calculul construcțiilor sunt derivabile dintr-un set de reguli de inferențe. În cele ce urmează, să fie utilizată pentru a înțelege o secvență de asociații de tip și vom scrie K pentru a desemna fie P sau T .


înseamnă că termenul este o dovadă a propoziției în context .

Vom însemna că înseamnă „  are pentru tip și are pentru tip  ” și rezultatul înlocuirii variabilei cu termenul din termen .

O regulă de inferență este scrisă în formă


care înseamnă

dacă este o judecată valabilă, la fel este.

Reguli de inferență pentru calculul construcțiilor

Fel:


Variabil:


Abstracție:


Cerere:

Conversie:

Definiți operatori logici

Calculul construcțiilor este foarte parsimonios atunci când se iau în considerare doar operatorii de bază: singurul operator logic care formează propozițiile este . Cu toate acestea, acest operator unic este suficient pentru a defini toți ceilalți operatori logici:

Definiți tipurile de date

Tipurile de date de bază utilizate în informatică pot fi definite în calculul construcțiilor:

Booleeni Numere întregi naturale Tip produs Unire dezarticulată

Vezi și tu

Articole similare

Teoreticieni

Referințe

Sursa de traducere

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">