Кіріспе

1970-жылдардағы автоматтандырылған теореманы дәлелдеуші

Логика есептеу функциялары (LCF) – Робин Милнер және оның әріптестері 1970-жылдардың басында Стэнфорд пен Эдинбургте Дана Скотт бұрын ұсынған есептеу функцияларының логикасының теориялық негізінде әзірлеген интерактивті автоматтандырылған теореманы дәлелдеуші. LCF жүйесіндегі жұмыс пайдаланушыларға теореманы дәлелдеу тактикасын жазуға мүмкіндік беретін, алгебралық деректер түрлерін, параметрлік полиморфизмді, абстрактілі деректер түрлерін және қателіктерді қолдайтын ML бағдарламалау тілін енгізді.

Негізгі идея

Жүйедегі теоремалар – арнайы "теорема" абстрактілі дерек типінің мүшелері болып табылады. ML абстрактілі дерек типтерінің жалпы механизмі теоремалардың теорема абстрактілі типінің операцияларымен берілген логикалық қорытынды ережелерін ғана қолдану арқылы туындатынын қамтамасыз етеді. Пайдаланушылар теоремаларды есептеу үшін кез келген күрделі ML бағдарламаларын жаза алады; теоремалардың дұрыстығы мұндай бағдарламалардың күрделілігіне емес, абстрактілі дерек типінің дұрыс іске асырылуына және ML компиляторының дұрыстығына байланысты.

Артықшылықтар

LCF әдісі нақты дәлелдеу сертификаттарын жасайтын жүйелерге ұқсас сенімділікті қамтамасыз етеді, бірақ дәлелдеу нысандарын жадта сақтау қажеттілігін жояды. Теорема дерек типін жүйенің жұмыс уақытына байланысты дәлелдеу нысандарын қалау бойынша сақтау үшін оңай жүзеге асыруға болады, сондықтан ол негізгі дәлелдеу жасау әдісін кеңейтеді. Теоремаларды жасау үшін мақсатына арналған бағдарламалау тілін пайдалану туралы шешім, жазылған бағдарламалардың күрделілігіне қарай, дәл сол тілді қадамдық дәлелдемелерді, шешім қабылдау процедураларын немесе теореманы дәлелдейтін құралдарды жазу үшін қолдануға мүмкіндік береді.

Сенімді есептеу базасы

ML компиляторының енгізілуі сенімді есептеу базасын кеңейтеді. CakeML жобасы нәтижесінде ресми түрде тексерілген ML компиляторы жасалды, бұл аталған алаңдаушылықтардың бір бөлігін азайтуға мүмкіндік берді.

Дәлелдік рәсімдердің тиімділігі мен күрделілігі

Теоремаларды дәлелдеу жиі шешімдерді қабылдау процедуралары мен теоремаларды дәлелдеу алгоритмдерінен пайда көреді, олардың дұрыстығы жан-жақты талданған. LCF тәсілінде осы процедураларды іске асырудың тікелей жолы – осы процедуралардың нәтижелерді жүйенің аксиомаларынан, леммаларынан және логикалық қорытынды шығару ережелерінен алуын талап етеді, нәтижені тікелей есептеуден гөрі. Ықтимал тиімдірек тәсіл – формулалармен жұмыс істейтін функцияның әрқашан дұрыс нәтиже беретінін дәлелдеу үшін рефлексияны қолдану болып табылады.

Әсерлер

Кейінгі енгізілімдердің бірі – Кембридж LCF. Келесі жүйелер логиканы қарапайымдастырып, толық функцияларды, жартылай функциялардың орнына пайдаланды, нәтижесінде HOL, HOL Light және түрлі логикаларды қолдайтын Isabelle дәлелдеу құралы пайда болды. 2019 жылғы мәліметтер бойынша, Isabelle дәлелдеу құралында LCF логикасының енгізілімі әлі де сақталып, Isabelle/LCF ретінде қолданылады.