Építőipari kalkulus

A konstrukciószámítás ( CoC ) egy típuselmélet , amely egy magasabb rendű polimorf λ-számításon alapul ,  függő típusokkal , amelyet Thierry Cocan és Gerard Huet fejlesztett ki 1986-ban. A Barendregt lambda-kocka legmagasabb pontján található , lévén a legszélesebb az alkotórendszerei közül . Használható alapként egy tipizált programozási nyelv felépítéséhez, és a matematika építő alapjainak rendszereként .

A Coq interaktív bizonyítási rendszer és számos hasonló eszköz (köztük Matita ) alapja .

A számítási lehetőségek között szerepel az induktív konstrukciók számítása [1] ( induktív típusokat használ ), a koinduktív konstrukciók számítása ( koindukciót használva ), az induktív konstrukciók predikatív számítása (kiküszöböli a nem predikativitást ).

A Curry-Howard megfeleltetés szempontjából a konstrukciós kalkulus a szekvenciális intuicionista predikátumszámításban a függő típusok és a bizonyítások közötti kapcsolatot állapítja meg .

Szerkezet

Fürdők

Az építési számításban egy kifejezést a következő szabályok szerint állítunk össze:

Más szavakkal, egy kifejezés szintaxisa, ha BNF használatával írják , a következő:

A konstrukciós számítás ötféle objektumot használ:

  1. bizonyos állítások típusával rendelkező bizonyítások ;
  2. állítások , más néven kis típusok ;
  3. predikátumok , amelyek olyan függvények, amelyek állításokat adnak vissza ;
  4. nagy típusok , amelyek predikátumok típusai ( P  egy ilyen nagy típusra példa);
  5. T mint olyan, amely az a típus, amelyhez a nagy típusok tartoznak.

Ítéletek

A konstrukciós kalkulus lehetővé teszi a típusokra vonatkozó ítéletek bizonyítását .

következményként olvasható:

Ha a változók típusúak , akkor a kifejezés típusos .

A konstrukciós kalkulusra vonatkozó érvényes javaslatok következtetési szabályokból származtathatók. A következőkben szimbólumot használunk a típus-hozzárendelések sorozatának jelölésére , a K -t pedig P vagy T jelölésére . A képlet a kifejezés minden szabad változójához tartozó kifejezést helyettesíti .

A következtetési szabályok a következő formátumban vannak megírva:

azt jelenti:

Ha érvényes javaslat, akkor

Következtetési szabályok a konstrukciós kalkulushoz

1 .

2 .

3 .

4 .

5 .

Logikai operátorok meghatározása

A konstrukciós kalkulus nagyon kevés alapvető operátort tartalmaz: az egyetlen logikai operátor az utasítások képzéséhez . Ez az állítás azonban önmagában elegendő az összes többi logikai operátor meghatározásához:

Adattípusok meghatározása

A konstrukciós kalkulus lehetővé teszi a számítástechnikában használt alapvető adattípusok meghatározását:

Logikai értékek Egész számok Munka Kizárólagos csatlakozás (változatjelölés)

Vegye figyelembe, hogy a logikai és a numerikus értékek az egyházi kódoláshoz hasonló módon vannak meghatározva . További problémák merülnek fel azonban az állítások kiterjedtségéből és irrelevánsságából[ pontosítani ] bizonyíték [2] .

Jegyzetek

  1. Induktív konstrukciók kalkulusa archiválva 2020. június 10-én a Wayback Machine -nél és a Coq Core Standard Libraries-ben: 2020. június 10-én a Wayback Machine -nél és 2020. június 10-én archiválva a Wayback Machine -nél .Datatypes Logic
  2. Standard Library | A Coq Proof Assistant . Letöltve: 2020. június 24. Az eredetiből archiválva : 2011. július 21.