Curry-Howard korrespondens

Curry-Howard-korrespondensen ( Curry-Howard isomorphism , engelsk  formulæ-as-types interpretation ) är en observerbar strukturell motsvarighet mellan matematiska bevis och program som kan formaliseras som en isomorfism mellan logiska system och maskinskrivna kalkyler.

Haskell Curry [1] och William Howard2] att konstruktionen av konstruktivt bevis liknar beskrivningen av beräkningar, och påståendena om konstruktiv logik liknar i sin struktur de typer av beräknade uttryck - program för en dator . Tidiga manifestationer av detta samband är Brouwer-Heiting-Kolmogorov-tolkningen (1925), som definierar den intuitionistiska logikens semantik genom beräkning av bevis, och realiserbarhetsteorin Kleene (1945).

Curry-Howard-korrespondens i den moderna uppfattningen är inte begränsad till någon logik eller typsystem. Till exempel motsvarar propositionslogik en enkel typad λ-kalkyl , andra ordningens motsvarar  en λ-kalkyl och motsvarar  en λ-kalkyl med beroende typer .

Inom ramen för Curry-Howard-isomorfismen anses följande strukturella element vara likvärdiga:

Logiska system Programmeringsspråk
påstående Sorts
Bevis på uttalandet Typ av term (uttryck).
Påståendet är bevisbart Typ bebodd
inblandning funktionell typ
Samband Konstverkstyp (par)
Åtskiljande Summatyp (diskriminerad förening)
Riktig formel enda typ
Falsk formel Tom typ ( )
Universell kvantifierare Beroende produkttyp ( -typ)
Existens kvantifierare Beroende summatyp ( -typ)

Det enklaste exemplet på Curry-Howard-korrespondensen är en isomorfism mellan en enkel maskinskriven λ-kalkyl och ett stycke intuitionistisk propositionslogik som endast inkluderar implikation . Till exempel, en typ i en enkel maskinskriven lambda-kalkyl motsvarar en proposition av propositionslogik . För att bevisa detta påstående är det nödvändigt att konstruera en term av den angivna typen (om detta kan göras, då säger de om typen att den är bebodd eller bebodd ), i det här fallet kan du presentera den önskade termen: , och detta betyder att tautologin har bevisats.

Användningen av Curry-Howard isomorfism har gjort det möjligt att skapa en hel klass av funktionella programmeringsspråk vars runtime-miljö också är ett automatiskt bevissystem , såsom Coq , Agda och Epigram .

Anteckningar

  1. Curry, HB, Feys, R. Combinatory Logic Vol. I. - Amsterdam : Nord-Holland , 1958.
  2. Howard, WA Formler-som-typers begreppet konstruktion // Till HB Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism. - Boston: Academic Press , 1980. - s. 479-490 .

Litteratur