Members
External Collaborators
Description
In this project, we propose to develop an embedding of MDG data structure and basic and operations (such as conjunction) in HOL. The idea is to enable a user to write a HOL term in a similar MDG underlying first-order logic, which will be passed to the MDG package for analyses and further manipulation as an MDG data structure. This will enable the use of MDGs operations, rather than proof tactics, from HOL, hence MDG will become a decision procedure, transparent to the user. MDGs in HOL will give an alternate, often easier, method for showing functional equivalence of first-order equations.
Once HOL terms are represented as MDGs and MDG algorithms accessible, it will allow an automatic verification of specific HOL goals. A related work was done by K. Larsen at Cambridge U. It consisted of embedding a BDD package, called BuDDy into HOL. Hence, any Boolean term with Boolean free variables can be represented by a BDD. The BuDDy package has been interfaced to ML (underlying language of HOL) so that BDDs can be implemented as ML values of a type bdd and the various BuDDy operations are linked to ML functions.
Similarly, we think that an interface to MDG should provide an ML type mdg together with ML functions corresponding to the functions in the MDG package. Using these, it will be possible to implement a function that maps any quantified first-order formula to an MDG.
Publications