Corespondență Curry-Howard

Corespondența Curry-Howard ( Curry-Howard isomorphism , în engleză  formulæ-as-types interpretation ) este o echivalență structurală observabilă între demonstrații și programe matematice care poate fi formalizată ca izomorfism între sisteme logice și calcule tipizate.

Haskell Curry [1] și William Howard2] că construcția dovezi constructive este similară cu descrierea calculelor, iar enunțurile logicii constructive sunt similare în structura lor cu tipurile de expresii calculate - programe pentru calculator . Manifestările timpurii ale acestei conexiuni sunt interpretarea Brouwer-Heiting-Kolmogorov (1925), care definește semantica logicii intuiționiste prin calculul demonstrațiilor și teoria realizabilității Kleene (1945).

Corespondența Curry-Howard în viziunea modernă nu se limitează la nici un sistem de logică sau tip. De exemplu, logica propozițională corespunde unui λ-calcul tip simplu , logica de ordinul doi corespunde  unui λ-calcul iar calculul predicat corespunde  unui λ-calcul cu tipuri dependente .

În cadrul izomorfismului Curry-Howard, următoarele elemente structurale sunt considerate echivalente:

Sisteme logice Limbaje de programare
afirmație Tip de
Dovada afirmației Tip de termen (expresie).
Afirmația este dovedibilă Tip locuit
implicare tip functional
Conjuncție Tipul operei de artă (perechi)
Disjuncția Tipul sumei (uniunea discriminată)
Adevărata formulă un singur tip
Formula falsă Tip gol ( )
Cuantificator universal Tip de produs dependent ( -tip)
Cuantificator de existență Tipul sumei dependente ( -tip)

Cel mai simplu exemplu de corespondență Curry-Howard este un izomorfism între un simplu λ-calcul tipat și o bucată de logică propozițională intuiționistă care include doar implicația . De exemplu, un tip dintr-un calcul lambda tip simplu corespunde unei propoziții de logică propozițională. Pentru a demonstra această afirmație, este necesar să construiți un termen de tipul specificat (dacă acest lucru se poate face, atunci se spune despre tipul că este locuit sau locuit ), în acest caz, puteți prezenta termenul dorit: , și asta înseamnă că tautologia a fost dovedită.

Utilizarea izomorfismului Curry-Howard a făcut posibilă crearea unei întregi clase de limbaje de programare funcționale al căror mediu de rulare este, de asemenea, un sistem de demonstrare automată , cum ar fi Coq , Agda și Epigram .

Note

  1. Curry, HB, Feys, R. Combinatory Logic Vol. I. - Amsterdam : Olanda de Nord , 1958.
  2. Howard, WA Noțiunea de formule ca tipuri de construcție // Către HB Curry: Eseuri despre logica combinatorie, calculul lambda și formalismul. - Boston: Academic Press , 1980. - pp. 479-490 .

Literatură