2 research outputs found
A proof system for graph (non)-isomorphism verification
In order to apply canonical labelling of graphs and isomorphism checking in
interactive theorem provers, these checking algorithms must either be
mechanically verified or their results must be verifiable by independent
checkers. We analyze a state-of-the-art algorithm for canonical labelling of
graphs (described by McKay and Piperno) and formulate it in terms of a formal
proof system. We provide an implementation that can export a proof that the
obtained graph is the canonical form of a given graph. Such proofs are then
verified by our independent checker and can be used to confirm that two given
graphs are not isomorphic
A Machine-Checked, Type-Safe Model of Java Concurrency : Language, Virtual Machine, Memory Model, and Verified Compiler
The Java programming language provides safety and security guarantees such as type safety and its security architecture. They distinguish it from other mainstream programming languages like C and C++. In this work, we develop a machine-checked model of concurrent Java and the Java memory model and investigate the impact of concurrency on these guarantees. From the formal model, we automatically obtain an executable verified compiler to bytecode and a validated virtual machine