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 .
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:
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, akkor1 .
2 .
3 .
4 .
5 .
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:
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] .