Rachunek konstrukcji - Calculus of constructions

W logice matematycznej i informatyki The rachunek konstrukcji ( CoC ) jest teoria typ stworzony przez Thierry Coquand . Może służyć zarówno jako typowany język programowania, jak i jako konstruktywna podstawa matematyki . Z tego drugiego powodu CoC i jego warianty były podstawą dla Coq i innych asystentów dowodu .

Niektóre z jego wariantów obejmują rachunek konstrukcji indukcyjnych (dodający typy indukcyjne ), rachunek konstrukcji (ko)indukcyjnych (dodający koindukcję ) oraz rachunek predykatywny konstrukcji indukcyjnych (który usuwa pewną niepredykatywność ).

Rachunek konstrukcji, z dodatkowym aksjomatem odpowiadającym aksjomatowi wyboru , może być zakodowany w teorii mnogości Zermelo-Fraenkla z wyborem (ZFC) i odwrotnie. Dlatego oba są równospójne .

Cechy ogólne

CoC to typowy rachunek lambda wyższego rzędu , początkowo opracowany przez Thierry'ego Coquand'a . Jest dobrze znany z bycia na szczycie Barendregt „s lambda sześcianu . W CoC można definiować funkcje od terminów do terminów, a także terminy na typy, typy na typy i typy na terminy.

CoC jest silnie normalizujący , chociaż niemożliwe jest udowodnienie tej właściwości w CoC, ponieważ implikuje spójność, której nie można udowodnić z samego systemu , zgodnie z twierdzeniem Gödla .

Stosowanie

CoC został opracowany wraz z asystentem dowodu Coq . Po dodaniu funkcji (lub usunięciu ewentualnych zobowiązań) do teorii, stały się one dostępne w Coq.

Warianty CoC są używane w innych asystentach dowodowych, takich jak Matita .

Podstawy rachunku konstrukcji

Rachunek konstrukcji można uznać za rozszerzenie izomorfizmu Curry-Howarda . Izomorfizm Curry'ego-Howarda kojarzy termin w po prostu typowanym rachunku lambda z każdym dowodem dedukcji naturalnej w intuicjonistycznej logice zdań . Rachunek konstrukcji rozszerza ten izomorfizm na dowody w pełnym intuicjonistycznym rachunku predykatów, który obejmuje dowody zdań kwantyfikowalnych (które będziemy również nazywać „zdaniami”).

Warunki

Termin w rachunku konstrukcji jest wykonana przy użyciu zasad następujących:

  • to termin (zwany także typem );
  • to termin (zwany także prop , rodzaj wszystkich zdań);
  • Zmienne ( ) to terminy;
  • Jeśli i są terminami, to tak jest ;
  • Jeśli i są terminami i jest zmienną, to terminami są również:
    • ,
    • .

Innymi słowy, składnia terminu w BNF to:

Rachunek konstrukcji ma pięć rodzajów obiektów:

  1. dowody , które są terminami , których typami są zdania ;
  2. propozycje , które są również znane jako małe typy ;
  3. predykaty , które są funkcjami zwracającymi zdania;
  4. duże typy , które są typami predykatów ( jest przykładem dużego typu);
  5. sam w sobie, który jest typem dużych typów.

Wyroki

Rachunek konstrukcji umożliwia dowodzenie sądów typowania :

Co można odczytać jako implikację

Jeżeli zmienne mają typy , to termin ma typ .

Prawidłowe sądy dla rachunku konstrukcji można wyprowadzić ze zbioru reguł wnioskowania. W dalszej części używamy do oznaczania sekwencji przypisań typu ; rozumieć terminy; i oznacza albo lub . Będziemy pisać, aby oznaczać wynik podstawienia terminu za zmienną wolną w wyrazie .

Reguła wnioskowania jest zapisana w postaci

co znaczy

Jeśli jest słusznym osądem, to tak jest

Reguły wnioskowania dla rachunku konstrukcji

1 .

2 .

3 .

4 .

5 .

6 .

Definiowanie operatorów logicznych

Rachunek konstrukcji ma bardzo niewiele podstawowych operatorów: jedynym operatorem logicznym do tworzenia zdań jest . Jednak ten jeden operator wystarcza do zdefiniowania wszystkich pozostałych operatorów logicznych:

Definiowanie typów danych

Podstawowe typy danych stosowane w informatyce można zdefiniować w ramach rachunku konstrukcji:

wartości logiczne
Naturalni
Produkt
Związek rozłączny

Zauważ, że Boole's i Naturals są definiowane w taki sam sposób jak w kodowaniu Church'a . Jednak dodatkowe problemy wynikają z ekstensjonalności zdań i nieistotności dowodu.

Zobacz też

Bibliografia