The Supervisionary proof-checking kernel (or: a work-in-progress towards proof generating code)

05/06/2022
by   Dominic P. Mulligan, et al.
0

Interactive theorem proving software is typically designed around a trusted proof-checking kernel, the sole system component capable of authenticating theorems. Untrusted automation procedures reside outside of the kernel, and drive it to deduce new theorems via an API. Kernel and untrusted automation are typically implemented in the same programming language – the "meta-language" – usually some functional programming language in the ML family. This strategy – introduced by Milner in his LCF proof assistant – is a reliability mechanism, aiming to ensure that any purported theorem produced by the system is indeed entailed by the theory within the logic. Changing tack, operating systems are also typically designed around a trusted kernel, a privileged component responsible for – amongst other things – mediating interaction betwixt user-space software and hardware. Untrusted processes interact with the system by issuing kernel system calls across a hardware privilege boundary. In this way, the operating system kernel supervises user-space processes. Though ostensibly very different, squinting, we see that the two kinds of kernel are tasked with solving the same task: enforcing system invariants in the face of unbounded interaction with untrusted code. Yet, the two solutions to solving this problem, employed by the respective kinds of kernel, are very different. In this abstract, we explore designing proof-checking kernels as supervisory software, where separation between kernel and untrusted code is enforced by privilege, not programming language module boundaries and type abstraction. We describe work on the Supervisionary proof-checking kernel, and briefly sketch its unique system interface. We then describe some potential uses of the Supervisionary kernel.

READ FULL TEXT

page 1

page 2

page 3

research
10/24/2018

A general proof certification framework for modal logic

One of the main issues in proof certification is that different theorem ...
research
02/17/2018

Design and Implementation of the Andromeda Proof Assistant

Andromeda is an LCF-style proof assistant where the user builds derivabl...
research
03/15/2023

A Formalization of Operads in Coq

What provides the highest level of assurance for correctness of executio...
research
05/15/2019

holpy: Interactive Theorem Proving in Python

The design of modern proof assistants is faced with several sometimes co...
research
08/28/2020

Practical Idiomatic Considerations for Checkable Meta-Logic in Experimental Functional Programming

Implementing a complex concept as an executable model in a strongly type...
research
01/10/2017

Towards Smart Proof Search for Isabelle

Despite the recent progress in automatic theorem provers, proof engineer...
research
05/24/2022

ACL2s Systems Programming

ACL2 provides a systems programming capability that allows one to write ...

Please sign up or login with your details

Forgot password? Click here to reset