vanHelsing: A Fast Proof Checker for Debuggable Compiler Verification

Author(s):  
Roland Lezuo ◽  
Ioan Dragan ◽  
Gergo Barany ◽  
Andreas Krall
Author(s):  
Carl Eichenlaub ◽  
Bruce Esrig ◽  
James Hook ◽  
Carl Klapper ◽  
Garrel Pottinger
Keyword(s):  

2012 ◽  
Vol 34 (4) ◽  
pp. 4-11 ◽  
Author(s):  
Francien Dechesne ◽  
Rob Nederpelt
Keyword(s):  

2020 ◽  
Vol 6 ◽  
pp. e320
Author(s):  
Artur Korniłowicz

A “property” in the Mizar proof-assistant is a construction that can be used to register chosen features of predicates (e.g., “reflexivity”, “symmetry”), operations (e.g., “involutiveness”, “commutativity”) and types (e.g., “sethoodness”) declared at the definition stage. The current implementation of Mizar allows using properties for notions with a specific number of visible arguments (e.g., reflexivity for a predicate with two visible arguments and involutiveness for an operation with just one visible argument). In this paper we investigate a more general approach to overcome these limitations. We propose an extension of the Mizar language and a corresponding enhancement of the Mizar proof-checker which allow declaring properties of notions of arbitrary arity with respect to explicitly indicated arguments. Moreover, we introduce a new property—the “fixedpoint-free” property of unary operations—meaning that the result of applying the operation to its argument always differs from the argument. Results of tests conducted on the Mizar Mathematical Library are presented.


Author(s):  
Xiaohong Chen ◽  
Zhengyao Lin ◽  
Minh-Thai Trinh ◽  
Grigore Roşu

AbstractWe pursue the vision of an ideal language framework, where programming language designers only need to define the formal syntax and semantics of their languages, and all language tools are automatically generated by the framework. Due to the complexity of such a language framework, it is a big challenge to ensure its trustworthiness and to establish the correctness of the autogenerated language tools. In this paper, we propose an innovative approach based on proof generation. The key idea is to generate proof objects as correctness certificates for each individual task that the language tools conduct, on a case-by-case basis, and use a trustworthy proof checker to check the proof objects. This way, we avoid formally verifying the entire framework, which is practically impossible, and thus can make the language framework both practical and trustworthy. As a first step, we formalize program execution as mathematical proofs and generate their complete proof objects. The experimental result shows that the performance of our proof object generation and proof checking is very promising.


Sign in / Sign up

Export Citation Format

Share Document