An Automatically Verified Prototype of the Android Permissions System
In a previous work De Luca and Luna presented formal specifications of idealized formulations of the permission model of Android in the Coq proof assistant. This formal development is about 23 KLOC of Coq code, including proofs. This work aims at showing that log (`setlog') – a satisfiability solver and a constraint logic programming language – can be used as an effective automated prover for the class of proofs that must be discharged in the formal verification of systems such as the one carried out by De Luca and Luna. We show how the Coq model is encoded in log and how automated proofs are performed. The resulting log model is an automatically verified executable prototype of the Android permissions system. Detailed data on the empirical evaluation resulting after executing all the proofs in log is provided. The integration of Coq and log as to provide a framework featuring automated proof and prototype generation is discussed.
READ FULL TEXT