<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>LCF-style for Secure Veri¯cation Platform based on Multiway Decision Graphs</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sa'ed Abed</string-name>
          <email>sabed@hu.edu.jo</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Otmane Ait Mohamed</string-name>
          <email>ait@ece.concordia.ca</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Engineering, Hashemite University</institution>
          ,
          <addr-line>Zarqa</addr-line>
          ,
          <country country="JO">Jordan</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Electrical and Computer Engineering, Concordia University</institution>
          ,
          <addr-line>Montreal</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Formal veri¯cation of digital systems is achieved, today, using one of two main approaches: states exploration (mainly model checking and equivalence checking) or deductive reasoning (theorem proving). Indeed, the combination of the two approaches, states exploration and deductive reasoning promises to overcome the limitation and to enhance the capabilities of each. A comparison between both categories is discussed in details. In this paper, we are interested in presenting as an example a platform for Multiway Decision Graphs (MDGs) in LCF-style theorem prover. Based on this platform, many conversions such as the reachability analysis and reduction techniques can be implemented that uses the MDG theory within the HOL theorem prover. The paper also questions the best formalization principle of decision graphs to build such a platform in theorem proving since a set of basic operations are used to e±ciently manipulate the decision graphs which constitute the kernel of the model checking algorithms, by describing two alternatives to formalize these decision graphs. Then we contrast between them according to their e±ciency, complexity and feasibility. Finally, we hope this paper to serve as an adequate introduction to the concepts involved in formalization and a survey of relevant work.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>With the increasing complexity of the design of digital systems and the size of
the circuits in VLSI technology, the role of design veri¯cation has gained a lot
of importance. Serious design errors and bugs take a lot of time and e®ort to be
detected and corrected especially when they are discovered late in the veri¯cation
process. This will increase the total cost of the chip. In order to overcome these
limitations, formal veri¯cation techniques arose as a complement to simulation
for detecting errors as early as possible, thus ensuring the correctness of the
design.</p>
      <p>
        Formal veri¯cation of digital systems is achieved, today, using one of two main
approaches: states exploration [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] (mainly model checking and equivalence
checking) or deductive reasoning (theorem proving). It is accepted that both
approaches have complementary strengths and weaknesses.
      </p>
      <p>Model checking algorithms can automatically decide if a temporal property
holds for a ¯nite-state system. Furthermore, they can produce a counterexample
when the property does not hold, which can be very important for correcting the
corresponding error in the implementation under veri¯cation or in the
speci¯cation itself. However, model checking su®ers from the state explosion problem:
the number of the explored states grows exponentially in the size of the system
description.</p>
      <p>In deductive reasoning, the correctness of a design is formulated as a
theorem in a mathematical logic and the proof is checked using a general-purpose
theorem-prover. Based on ¯rst-order and high-order logic, these theorem provers
are known for their abilities to express relationships over unbounded data
structures. Therefore, theorem proving tools are not sensitive to the state explosion
problem when used to reason formally about such data and relationships.
Unfortunately, if the property fails to hold, deductive methods do not give a
counterexample. Furthermore, this frequent situation requires skilled manual guidance for
veri¯cation and human insight for debugging. Yet theorem provers, today,
provide feedback, but only expert user can track the proof trace and determine
whether the fault lies within the system, the property being veri¯ed, or within
the failed proof tactic.</p>
      <p>Indeed, the combination of the two approaches, states exploration and
deductive reasoning promises to overcome the limitations and to enhance the
capabilities of each. This combination can be performed either by adding a layer of
deduction theorems and rules on top of the model checking tool (hybrid approach)
or by embedding model checking algorithms inside theorem provers (deep
embedding approach). Our work is motivated by using the deep embedding approach
to blend the best of model checker and theorem prover.</p>
      <p>The paper is organized as follows: In Section 2, we brie°y introduce the formal
veri¯cation techniques. The combination of model checkers and theorem provers
is described in Section 3. We then survey the literature and present the related
work in Section 4. Section 5 overviews the formalization of MDG-HOL platform
and the proof of the correctness methodology. Finally, Section 6 concludes the
paper and gives some future research directions.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Formal Veri¯cation Techniques</title>
      <p>Formal veri¯cation problem consists of mathematically establishing that an
implementation behaves according to a given set of requirements or speci¯cation.
To classify the various approaches, we ¯rst look at the three main aspects of the
veri¯cation process: the system under investigation (implementation), the set of
requirements to obey (speci¯cation) and the formal veri¯cation tool to verify the
process (relationship between implementation and speci¯cation).</p>
      <p>The implementation refers to the description of the design that is to be
veri¯ed. It can be described at di®erent levels of abstraction which results in
different veri¯cation methods. Another important issue with the implementation
is the class of the system or circuit to be veri¯ed, i.e., whether it is
combinational/sequential, synchronous/asynchronous, pipelined or parameterized
hardware. These variations may require di®erent approaches. The speci¯cation refers
to the property with respect to which the correctness is to be determined. In
practice, one needs to model both the implementation and the speci¯cation in
the tool, and then uses one of the formal veri¯cation algorithms of the tool
to check the correctness of the system or in some cases give a trace of error
(counter-example).</p>
      <p>Formal techniques have long been developed within the computing research
community as they provide sound mathematical foundation for the speci¯cation,
implementation and veri¯cation of computer system. Thus, formal veri¯cation is
proposed as a method to help certify hardware and software, and consequently,
to increase con¯dence in new designs. A correctness proof cannot guarantee that
the real device will never malfunction; the design of the device may be proved
correct, but the hardware actually built can still behave in a way unintended
by the designer. Wrong speci¯cation can play a major rule in this, because it
has been veri¯ed that the system will function as speci¯ed, but it has not been
veri¯ed that it will work correctly. Defects in physical fabrication can cause this
problem too. In formal veri¯cation a model of the design is veri¯ed, not the real
physical implementation. Therefore, a fault in the modeling process can give
false negatives (errors in the design which do not exist). Although sometimes,
the fault covers some real errors.</p>
      <p>Formal veri¯cation approaches can be generally divided into two main
categories: theorem proving methods and state exploration methods such as model
checkers as described in the following subsections.
2.1</p>
      <sec id="sec-2-1">
        <title>Theorem Proving</title>
        <p>
          Theorem proving is an approach where the speci¯cation and the implementation
are usually expressed in ¯rst-order or higher-order logic. Their relationship is
formed as a theorem to be proved within the logic system. This logic is a set of
axioms and a set of inference rules. Steps in the proof appeal to the axioms and
rules, and possibly derived de¯nitions and intermediate lemmas. The axioms are
usually "elementary" in the sense that they capture the basic properties of the
logic's operators [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
        </p>
        <p>Theorem proving utilizes the proof inference technique. The problem itself
is transformed into a sequent, a working representation for the theorem proving
problem. Then a sequent holds if the formula f holds in any model:
² f</p>
        <p>
          Theorem proving methods have been in use in hardware and software
veri¯cation for a number of years in various research projects. Some of the well-known
theorem provers are HOL (Higher-Order Logic), ISABELLE, PVS (Prototype
Veri¯cation System), Coq and ACL2 [
          <xref ref-type="bibr" rid="ref14 ref21 ref24 ref27 ref41">21, 41, 14, 24, 27</xref>
          ]. These systems are
distinguished by, among other aspects, the underlying mathematical logic, the way
automatic decision procedures are integrated into the system, and the user
interface. Even though they are powerful, they require expertise in using a theorem
prover. User is expected to know the whole design leading to a white box
veri¯cation approach. It is not fully automated and requires a large amount of time
to verify the system. Another shortcoming is the inability to produce
counterexamples in the event of a failed proof, because the user does not know whether
the required property is not derivable or whether the person conducting the
derivation is not ingenious enough. The advantage of the deductive veri¯cation
approach is that it can handle very complex systems because the logics of
theorem provers are more expressive. In the next subsection, we will overview the
HOL theorem proving system, which we intend to use in this work.
The HOL Theorem Prover: The HOL system is an LCF [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ] (Logic of
Computable Functions) style proof system. Originally intended for hardware
veri¯cation, HOL uses higher-order logic to model and verify variety of applications
in di®erent areas; serving as a general purpose proof system. We cite for
example: reasoning about security, veri¯cation of fault-tolerant computers, compiler
veri¯cation, program re¯nement calculus, software veri¯cation, modeling, and
automation theory.
        </p>
        <p>
          HOL provides a wide range of proof commands, rewriting tools and decision
procedures. The system is user-programmable which allows proof tools to be
developed for speci¯c applications; without compromising reliability [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ].
        </p>
        <p>The basic interface to the system is a Standard Meta Language (SML)
interpreter. SML is both the implementation language of the system and the Meta
Language in which proofs are written. Proofs are input to the system as calls
to SML functions. The HOL system supports two main di®erent proof methods:
forward and backward proofs in a natural-deduction style calculus.</p>
        <p>Theorems in HOL are represented by values of the ML abstract type thm.
There is no way to construct a theorem except by carrying out a proof based
on the primitive inference rules and axioms. HOL has many built-in inference
rules and ultimately all theorems are proved in terms of the axioms and basic
inferences of the calculus. By applying a set of primitive inference rules, a
theorem can be created. Once a theorem is proved, it can be used in further proofs
without recomputation of its own proof.</p>
        <p>HOL also has a rudimentary library facility which enables theories to be
shared. This provides a ¯le structure and documentation format for self
contained HOL developments. Many basic reasoners are given as libraries such as
mesonLib, bossLib, and simpLib. These libraries integrate rewriting,
conversion and decision procedures to free the user from performing low-level proof.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>State Exploration Methods</title>
        <p>State exploration methods use states space traversal algorithms on ¯nite-state
models to check if the implementation satis¯es its speci¯cation. They are focused
mostly on automatic decision procedures for solving the veri¯cation problem.</p>
        <p>
          Model checking is a state exploration based veri¯cation technique developed
in the 1980s by Clarke and Emerson [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] and independently by Quielle and
Sifakis [
          <xref ref-type="bibr" rid="ref43">43</xref>
          ]. In model checking, a state of the system under consideration is a
snapshot of the system at certain time, given by the set of the variables values of
that system at that time. The system is then modeled as a set of states together
with a set of transitions between states that describe how the system moves from
one state to another in response to internal or external stimulus. Model checking
tools are then used to verify that desired properties (expressed in some temporal
logic) hold in the system.
        </p>
        <p>
          State exploration approach has two important advantages. First, once the
correct design of the system and the required properties has been fed in, the
veri¯cation process is fully automatic. Second, in the event of a property not
holding, the veri¯cation process is able to produce a counter-example (i.e. an
instance of the behavior of the system that violates the property) which is
extremely useful in helping the human designers pinpoint and ¯x the °aw. On
the other hand, model checkers are unable to handle very large designs due to
the state space explosion problem [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Another drawback is the problematic
description of speci¯cations as properties, this description sometimes may not
give full system coverage.
        </p>
        <p>
          Model checkers such as SPIN [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], COSPAN [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ], SMV [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ], and MDG [
          <xref ref-type="bibr" rid="ref53">53</xref>
          ]
take as input, essentially, a ¯nite-state system and temporal property in some
variety or subset of CTL*, and automatically check that the system satis¯es
the property. Moreover, the model is often restricted to a ¯nite-state transition
system, for which ¯nite-state model checking is known to be decidable. The
design or model M is formalized in terms of a state machine (Transition System),
or a Kripke structure and the property Á is formalized as a logical formula that
the machine should satisfy. The veri¯cation problem is stated as checking the
formula Á in the model M :
        </p>
        <p>M ² Á</p>
        <p>If the model M is represented explicitly as a transition relation, then the
size of the model is limited to the number of states that can be stored in the
computer memory, which are a few million states with the current technology.
To increase the size of the model, more e±cient state representations can be
used to manipulate these formulae using BDDs or SAT solving techniques.</p>
        <p>
          Binary Decision Diagrams (BDDs) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] are data structures used as a
compact representation for the Boolean function which improves the capacity of the
model checker. Di®erent representations of ROBDDs (Reduced Order Binary
Decision Diagrams) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] are used to manipulate the state transition relations
as diagrams and this allows model checkers to verify larger systems. Still, most
model checkers face the state space explosion problems [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] even using
Symbolic Model Checking. To be able to apply model checking to larger designs,
state reduction techniques are used that exploit some features of the model, the
properties, or the problem domain to reduce the state space to a tractable size.
Examples include partitioned transition relation, dynamic variable reordering,
cone of in°uence reduction, abstraction, problem-speci¯c techniques, e.g. when
the original design is rewritten in a simpler way, omitting the irrelevant details,
but preserving the important behavior for the property being veri¯ed.
        </p>
        <p>
          An alternative for decision graphs is to represent the transition relation in
CNF and use Satis¯ability Checking (SAT) [
          <xref ref-type="bibr" rid="ref15 ref49">15, 49</xref>
          ] with several properties that
make them attractive compared to BDDs. SAT solvers can decide satis¯ability of
very large Boolean formulae in reasonable time, but they are not canonical and
require additional e®orts to check for equivalence of formulas. As a result,
various researchers have developed routines for performing Bounded Model Checking
(BMC) [
          <xref ref-type="bibr" rid="ref16 ref3 ref9">9, 16, 3</xref>
          ] using SAT. The common theme is to convert the problem of
interest into a SAT problem, by devising the appropriate propositional Boolean
formula, and to utilize other non-canonical representations of state sets.
However, they all exploit the known ability of SAT solvers to ¯nd a single satisfying
solution when it exists. Moreover, SAT solver technology has improved
significantly in recent years with a number of sophisticated packages now available.
Well known state-of-the-art SAT solvers include CHAFF [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ], GRASP [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ] and
SATO [
          <xref ref-type="bibr" rid="ref54">54</xref>
          ]. Since state sets can be represented as Boolean formulae, and since
most model checking techniques manipulate state sets, SAT solvers have
enormously boosted their speed and applicability.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Combining Model Checking based Decision Diagrams and Theorem Proving</title>
      <p>Model checking is automatic while theorem proving is not. On the other hand,
theorem proving can handle complex systems while model checking can not.
Today, there exist a number of integration tools of theorem proving and model
checking. The motivation is to achieve the bene¯ts of both tools and to make the
veri¯cation simpler and more e®ective. In this section, we explore two approaches
of linking proof systems to external automated veri¯cation tools. The approaches
can be divided in two kinds:
1. Hybrid approach: adding a layer of deduction theorems and rules on top of
Decision Diagrams tool, i.e. combining theorem provers with other powerful
model checking tool.
2. Deep embedding approach: adding Decision Diagrams algorithms to theorem
provers.</p>
      <p>We ¯rst review the most related work to every approach and then, we contrast
between them according to their e±ciency, complexity and feasibility.
3.1</p>
      <sec id="sec-3-1">
        <title>Hybrid Approach</title>
        <p>The hybrid approach implements a tool linking model checking and theorem
proving. During the veri¯cation procedure, the user deals mainly with the
theorem proving tool. Veri¯cation using hybrid approach proceeds as shown in
Figure 1. The user starts by providing the theorem proving with the design
(speci¯cation or implementation), the property and the goal to be proven. If the
goal ¯ts the required pattern, the theorem proving tool generates the required
model checking ¯les (sub-goals). The latter are sent to the model checking tool
for veri¯cation. If the property holds, a theorem is created (Make-Theorem).
Otherwise, the proof is performed interactively.</p>
        <sec id="sec-3-1-1">
          <title>Sub-goals</title>
        </sec>
        <sec id="sec-3-1-2">
          <title>Property</title>
          <p>Theorem Prover</p>
          <p>Interface
Model Checker</p>
        </sec>
        <sec id="sec-3-1-3">
          <title>Counter example</title>
        </sec>
        <sec id="sec-3-1-4">
          <title>Make-Theorem</title>
        </sec>
        <sec id="sec-3-1-5">
          <title>True</title>
          <p>
            The linkage between both tools is carried out using scripting languages
(translators) to be able to automatically verify small subgoals generated by the theorem
prover from a large system. The disadvantage of this approach lies in achieving
an e±cient and correct translation from theorem prover logic to a model checker
and from model checker to theorem prover (import the result or give a
counterexample). Successful combinations of this kind have been achieved in [
            <xref ref-type="bibr" rid="ref2 ref25 ref26 ref28 ref37 ref46 ref47">25, 2, 46,
26, 47, 28, 37</xref>
            ].
In this approach, the emphasis is to establish a secure platform for new
veri¯cation algorithms. The performance penalty will be compensated by the secure
infrastructure. The approach implements a model checking inside a theorem
proving tool. As shown in Figure 2, the design and the property are fed to the
model checking to check if the property holds and create a theorem. Otherwise,
the proof cannot be performed.
          </p>
          <p>The result of the model checker is correct by construction, since both of the
theory and the implementation are proved correct in the theorem prover. Thus
a high assurance of soundness is guaranteed because more work is backed up by</p>
        </sec>
        <sec id="sec-3-1-6">
          <title>Theory of Model Checking</title>
        </sec>
        <sec id="sec-3-1-7">
          <title>Model Checking Operations</title>
        </sec>
        <sec id="sec-3-1-8">
          <title>Goal</title>
        </sec>
        <sec id="sec-3-1-9">
          <title>True/False</title>
          <p>
            mechanized fully-expansive proof. The price for the extra proof and °exibility is
in increased development e®ort. This approach di®ers from the hybrid approach
in the way the veri¯cation is performed. In fact, we do not use an external
checking tool, instead we deeply embed the model checker algorithms inside
the theorem prover. Thus the criteria of correctness by construction, e±ciency,
°exibility and expressiveness can be met. Successful works have been achieved
in [
            <xref ref-type="bibr" rid="ref19 ref20 ref22 ref36 ref8">19, 20, 22, 8, 36</xref>
            ].
          </p>
          <p>
            The "deep embedding" approach [
            <xref ref-type="bibr" rid="ref44">44</xref>
            ] introduce the model checker syntax
as a new higher order logic type and then de¯ne the operations and algorithms
based on this syntax within the theorem prover. This contrasts within a "shallow
embedding" where the syntax is not formally represented in the logic, only in
the meta-language. In general, a deep embedding allows one to reason about the
language itself rather than just the semantics of programs in the language.
4
          </p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>We consider two categories of related work: embedding of model checking
algorithms in theorem provers and correctness proof of these algorithms.
4.1</p>
      <sec id="sec-4-1">
        <title>Embedding of Model Checking Algorithms in Theorem Provers</title>
        <p>
          Model checkers [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ] are usually built on top of BDDs [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], or some other set of
ef¯ciently implemented algorithms for representing and manipulating Boolean
formulae. The closest work, in approach to our own is that of Joyce and Seger [
          <xref ref-type="bibr" rid="ref48">48</xref>
          ],
Gordon [
          <xref ref-type="bibr" rid="ref19 ref20">20, 19</xref>
          ] and later Amjad [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ].
        </p>
        <p>
          The Voss system [
          <xref ref-type="bibr" rid="ref48">48</xref>
          ], an implementation of Symbolic Trajectory Evaluation
(STE), was implemented in a lazy Functional Language (FL). In [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] Voss was
interfaced to HOL and the veri¯cation using a combination of deduction and
STE was demonstrated. The HOL-Voss system integrates HOL88 deduction with
BDD computations. A system based on this idea, called Voss-ThmTac, was later
developed by Aagaard: combination of the ThmTac theorem prover with the Voss
system. Then the development of HOL-Voss evolved into a new system called
Forte [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Recently, Forte [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ] is mostly used in Intel as an industrial integrated
formal veri¯cation tool.
        </p>
        <p>
          Gordon [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] integrated the BDD based veri¯cation system BuDDy (BDD
package implemented in C) into HOL. The aim of using BuDDy is to get near
the performance of C-based model checker, whilst remaining fully expansive,
though with a radically extended set of inference rules.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], Harrison implemented BDDs inside the HOL system without making
use of external oracle. The BDD algorithms were used by a tautology-checker.
However, the performance was about thousand times slower than with a BDD
engine implemented in C. Harrison argued that by re-implementing some of
HOL's primitive rules, the performance could be improved by around ten times.
        </p>
        <p>
          Amjad [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] demonstrated how BDD based symbolic model checking
algorithms for the propositional ¹-calculus (L¹) can be embedded in HOL theorem
prover. This approach allows results returned from the model checker to be
treated as theorems in HOL. By representing primitive BDD operations as
inference rules added to the core of the theorem prover, the execution of a model
checker for a given property is modeled as a formal derivation tree rooted at
the required property. These inference rules are hooked to a high performance
BDD engine [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] which is external to the theorem prover. Thus, the HOL logic
is extended with these extra primitives. Empirical evidence suggests that the
e±ciency loss in this approach is within reasonable bounds. The approach still
leaves results reliant on the soundness of the underlying BDD tools. A high
assurance of soundness is obtained at the expenses of some e±ciency.
        </p>
        <p>Our work, deals with embedding MDGs rather than BDDs. In fact, while
BDDs are widely used in state-exploration methods, they can only represent
Boolean formulae. By contrast, MDGs represent a subset of ¯rst-order terms
allowing the abstract representation of data and hence raising the level of
abstraction. Another major di®erence is that it implements the related inference
rules for BDD operators in the core of HOL as untrusted code, whereas we
implement the MDG operations as a trusted code inside HOL itself.</p>
        <p>
          Several works in [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ], [
          <xref ref-type="bibr" rid="ref42">42</xref>
          ] and [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] provide strategies to link the HOL
theorem prover and the MDG tool. The veri¯cation is performed within HOL and
MDG separately, where the MDG tool is considered as an oracle. That makes
the global proof informal, and this method does not extend readily to the fully
expansive approach (theorem prover). Thus, it achieves the integration goal at
the expense of higher assurance of correctness.
        </p>
        <p>
          Mhamdi and Tahar [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ] follow a similar approach to the BuDDy work [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ].
The work builds on the MDG-HOL [
          <xref ref-type="bibr" rid="ref28">28</xref>
          ] project, but uses a tightly integrated
system with the MDG primitives written in ML rather than two tools
communicating as in MDG-HOL system.
        </p>
        <p>
          Haiyan et al. [
          <xref ref-type="bibr" rid="ref52">52</xref>
          ] veri¯ed formally the linkage between a simpli¯ed version of
MDG tool and HOL theorem prover. The veri¯cation is based on importing MDG
results to HOL theorems. Then, they combine translator correctness theorems
with the linkage theorems in order to allow low level MDG veri¯cation results to
be imported into HOL in terms of the semantics of MDG-HDL. The work didn't
give a formal proof of the soundness of the MDG structure and operators.
4.2
        </p>
      </sec>
      <sec id="sec-4-2">
        <title>Correctness Proof of Model Checking Algorithms</title>
        <p>
          Veri¯cation of BDD algorithms has been a subject of active research using
different proof assistants such that HOL, PVS, Coq, and ACL2 [
          <xref ref-type="bibr" rid="ref14 ref21 ref24 ref27">21, 14, 24, 27</xref>
          ].
A common goal of these papers is to extend the prover with a certi¯ed BDD
package to enhance the BDD performance, while still inside a formal proof
system. Moreover, there is a general consensus in the formal veri¯cation community
that correctness proofs should be checked, partly or wholly, by computers. Some
e®orts have been made to verify model checkers and theorem provers.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref45">45</xref>
          ], the authors successfully carried out the veri¯cation task of the
RAVEN model checker. RAVEN is a real-time model checker which uses
timeextended ¯nite state machines (interval structure) to represent the system and
a timed version of CTL (CCTL) to describe its properties. The speci¯cation
and the correctness proof were carried out using an interactive speci¯cation and
veri¯cation system KIV.
        </p>
        <p>
          In [
          <xref ref-type="bibr" rid="ref39">39</xref>
          ], the author showed a mechanism of how certifying model checker can
be constructed. The idea is that, a model checker can produce a deductive proof
on either success or failure. The proof acts as a certi¯cate of the result, since
it can be checked independently. A certifying model checker thus provides a
bridge from the model-theoretic to the proof-theoretic approach to veri¯cation.
The author developed a deductive proof system for verifying branching time
properties expressed in the ¹-calculus, and showed it to be sound and relatively
complete. Then, a proof generation in this system from a model checking run is
presented. This is done by storing and analyzing sets of states that are generated
by the ¯xpoint computations performed during model checking.
        </p>
        <p>
          Krstic and Matthews [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] provided a technique for proving correctness of
high performance BDD packages. In their work, they adopted an abstraction
method called monadic interpretation for verifying an abstraction of the BDD
programs with the primitives speci¯ed axiomatically. The method is suitable
for higher order logic theorem provers such as Isabelle/HOL. The monadic
interpreter translates source programs of input type A and output type B into
function of type A ) M B in the target functional language, where the type
constructors M is a suitable monad that encapsulate the notion of
computation used by the source language to describe BDD programs. At this level, they
modeled the BDD programs as a function in higher order logic in the style of
monadic interpreters. Then the correctness proof was carried out on the BDD
abstract model.
        </p>
        <p>
          Wright [
          <xref ref-type="bibr" rid="ref51">51</xref>
          ] described an embedding of higher order proof theory within the
logic of the HOL theorem proving system. Types, terms and inferences were
represented as new types in the logic of the HOL system, and notions of proof
and provability were de¯ned. Using this formalization, it was possible to reason
about the correctness of derived inference rules and about the relations between
di®erent notions of proofs: a Boolean term is provable if and only if there exists a
proof for it. The formalization is also intended him to make it possible to reason
about programs that handle proofs as their data (e.g., proof checker).
        </p>
        <p>
          The authors in [
          <xref ref-type="bibr" rid="ref50">50</xref>
          ] implemented and proved the correctness of BDD
algorithms using Coq. One of their goals was to extract a certi¯ed algorithm
manipulating BDDs in Caml (the implementation language of Coq). BDDs were
represented as DAGs and maps were used to model a state of the memory in
which all the BDDs are stored. The authors used re°ection to prove a given
property P applied to some term t where the program is described and proved
in Coq. This means that writing a program ¼ that takes t as an input and returns
true exactly when P (t) holds. Then, to show ¼ is correct with respect to P they
needed to be sure that whenever ¼(t) returns true P (t) holds and this is done
inside the Coq proof assistant itself (i.e. the proof of P has been replaced by the
computation of ¼ and re°ect this by allowing the system to accept meta-level
computation as actual proof).
        </p>
        <p>
          Another concept to prove the program correctness using Hoare logic as
described by Ortner and Schirmer [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ]. The principle of this logic is to annotate
the program with pre- and post-conditions and to to observe the changes made
by each statement of the program. Ortner and Schirmer modeled the graph
structure of the BDD as a kind of heap and presented the veri¯cation of BDD
normalization. They follow the original algorithm presented by Bryant in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]:
transforming an ordered BDD into a reduced, ordered and shared BDD. The
work is based on Schirmer's research on the Veri¯cation Condition Generator
(VCG) to generate the proof obligations for Hoare Logic. The proofs are carried
out in the theorem prover Isabelle/HOL.
        </p>
        <p>Our work follows the veri¯cation of the Boolean manipulating package, but
using MDG instead. We provided a complete formalization of the MDG logic
and its well-formedness conditions as DFs in HOL mechanically. Based on this
infrastructure we formalized the basic MDG operations in HOL following a deep
embedding approach and proved their correctness. Our work focuses more on
how one can raise the level of assurance by embedding and proving formally the
correctness of those operators in HOL to use them as an infrastructure for MDG
model checker.
5</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>MDG-HOL Platform</title>
    </sec>
    <sec id="sec-6">
      <title>Methodology</title>
      <p>
        The intention of our work is to provide a secure platform that combines an
automatic high level MDGs model checking tool within the HOL theorem prover.
While related work has tackled the same problem by representing primitive
Binary Decision Diagrams (BDD) operations [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] as inference rules added to the
core of the theorem prover [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], we have based our approach on the Multiway
Decision Graphs (MDGs) [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. MDG generalizes ROBDD to represent and
manipulate a subset of ¯rst-order logic formulae which is more suitable for de¯ning
model checking inside a theorem prover. With MDGs, a data value is represented
by a single variable of an abstract type and operations on data are represented
in terms of an uninterpreted functions. Considering MDG instead of BDD will
rise the abstraction level of what can be veri¯ed using a state exploration within
a theorem prover. Furthermore, an MDG structure in HOL allows better proof
automation for larger datapaths systems. The work consists of two main phases:
1. provide all the necessary infrastructure (data structure + algorithms) to
de¯ne a high level state exploration in the HOL theorem prover named as
MDG-HOL platform.
      </p>
      <p>MDG</p>
      <p>MDG Syntax
Directed Formulae &amp; Well-formedness Conditions</p>
      <p>MDG Operations
Conjunction</p>
      <p>RelP</p>
      <p>Disjunction</p>
      <p>PbyS</p>
      <p>
        Correctness Proof
for each operation
As shown in Figure 3, we ¯rstly de¯ne the MDG structure inside the HOL
theorem prover to be able to construct and manipulate MDGs as formulae
in HOL. This step implies a formal logic representation for the MDG Syntax.
It is based on the Directed Formulae DF: an alternative vision for MDG in
terms of logic and set theory [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Secondly, HOL tactic is de¯ned to check
the satisfaction of the well-formedness conditions of any directed formula [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
This step is important to guarantee the canonical representation of the MDG
in terms of DF. Then, the de¯nition of the MDG operations, is associated
naturally with a proof of their correctness [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]. Finally, the MDG based
reachability analysis is de¯ned in HOL as a conversion that uses the MDG
theory (syntax and operations).
2. Based on this MDG-HOL platform, we propose an automatic methodology
to verify the soundness of model checking reduction techniques. The idea is
to use the consistency of the speci¯cations to verify if the reduced model is
faithful to the original one. The user provides the reduction technique, the
speci¯cations and the system under veri¯cation. Then, we verify
automatically using High Order Logic if the reduction technique is soundly applied.
The methodology veri¯es the soundness of the veri¯cation output and not
the reduction algorithm itself (non-decidable problem).
      </p>
      <p>HDL
Extract</p>
      <p>DF
DFSpec</p>
      <p>Reduction</p>
      <p>Technique
Soundness-Verification
(MDG-HOL)</p>
      <p>Reduced
Model
Extract</p>
      <p>DF
DFReduced
As shown in Figure 4, we start with a speci¯cation of a circuit design written
in Hardware Description Language (HDL) and extract a mathematical model
in terms of Directed Formulae (DFSpec). The reduction technique itself could
be applied on the HDL description either using HOL or an external tool.
Similarly, the reduced model is expressed in terms of Directed Formulae
(DFReduced).</p>
      <p>Then, both DFs should be fed to the MDG-HOL platform where the
soundness veri¯cation is checked. If the the reduction is proved sound then the
formal veri¯cation can be performed on the obtained reduced model.</p>
      <p>The powerful of our methodology is that it can be used with any veri¯cation
tool. All what we need is to translate in a sound manner both the model and
its reduction in order to embed them thereafter as DFs in HOL and then
prove that the reduced model is derived correctly using high order logic.
6</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion and Future Work</title>
      <p>BDD based symbolic model checking has proved to be a successful automatic
veri¯cation technique that can be applied to real designs. However, the state
space explosion problem caused by large datapaths is often the bottleneck in
applying the symbolic model checking technique. Theorem provers are based
on expressive formalisms that are capable of modeling complex systems but
requires expertise to verify most properties of practical interest. It has been
shown through several research papers that model checking can be e±ciently
combined with theorem proving in a way that sacri¯ces neither e±ciency of the
former, nor the expressiveness of the latter.</p>
      <p>In this paper we discussed two alternatives used for the formalization in the
theorem proving of decision diagrams, namely BBDs. We compare both of them
according to their e±ciency, complexity and feasibility.</p>
      <p>Moreover, we distinguished two approaches to extend theorem provers. The
¯rst approach consists of adding a layer of deduction theorems and rules on
top of model checking tool leading to a combination of theorem provers with
powerful model checking tool. This approach su®ers from two drawbacks: ¯rst,
very often model checking is used to prove the current sub-goal, and many
reduction techniques developed in model checking are simply omitted in the hope
that can be done with the existing theorem proving techniques. Second, the
translator and the model checking algorithms must be veri¯ed or trusted. The
second approach consists of deeply embedding the model checker algorithms
inside theorem prover. In this approach, the correctness of the result is correct
by construction. The drawback is the performance penalty due to the theorem
proving itself. Much work is promising in this area to enhance the performance
by developing techniques such as reduction and abstraction.</p>
      <p>Also, the paper served as an introduction to formalize model checking in
high order theorem provers and an extended survey of relevant work. Finally, we
have created a new formal theory for MDGs (data structure + operations) inside
the HOL theorem prover which provides us with several theoretical advantages
without too high performance penalty. We used this secure theory or platform
to verify the soundness of model checking reduction techniques. We thus hope
that this work will be of interest to the research community and also be of use
to industrial practitioners.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Aagaard</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. B.</given-names>
            <surname>Jones</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaivola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K. R.</given-names>
            <surname>Kohatsu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C. H.</given-names>
            <surname>Seger</surname>
          </string-name>
          .
          <article-title>Formal Veri¯cation of Iterative Algorithms in Microprocessors</article-title>
          .
          <source>In DAC '00: Proceedings of the 37th conference on Design automation</source>
          , pages
          <volume>201</volume>
          {
          <fpage>206</fpage>
          , New York, NY, USA,
          <year>2000</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>M. D. Aagaard</surname>
            ,
            <given-names>R. B.</given-names>
          </string-name>
          <string-name>
            <surname>Jones</surname>
            , and
            <given-names>C. H.</given-names>
          </string-name>
          <string-name>
            <surname>Seger</surname>
          </string-name>
          .
          <article-title>Combining Theorem Proving and Trajectory Evaluation in an Industrial Environment</article-title>
          .
          <source>In Proceedings of the 1998 Conference on Design Automation (DAC-98)</source>
          , pages
          <fpage>538</fpage>
          {
          <fpage>541</fpage>
          , Los Alamitos, CA,
          <year>June 1998</year>
          . ACM/IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>P.</given-names>
            <surname>Aziz Abdulla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bjesse</surname>
          </string-name>
          , and
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>E¶en. Symbolic Reachability Analysis based on SAT-Solvers</article-title>
          .
          <source>In Proceedings of the 6th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'2000)</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>S.</given-names>
            <surname>Abed</surname>
          </string-name>
          and
          <string-name>
            <given-names>O. Ait</given-names>
            <surname>Mohamed</surname>
          </string-name>
          .
          <article-title>Embedding of MDG Directed Formulae in HOL Theorem Prover</article-title>
          .
          <source>In Proc. 9th Maghrebian Conference on Software Engineering and Arti¯cial Intelligence MCSEAI'06</source>
          , pages
          <fpage>659</fpage>
          {
          <fpage>664</fpage>
          ,
          <string-name>
            <surname>Agadir</surname>
          </string-name>
          , Morocco,
          <year>December 2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>S.</given-names>
            <surname>Abed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. Ait</given-names>
            <surname>Mohamed</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. Al</given-names>
            <surname>Sammane</surname>
          </string-name>
          .
          <article-title>A High Level Reachability Analysis using Multiway Decision Graph in the HOL Theorem Prover</article-title>
          . In International Conference on Theorem Proving in Higher Order Logics (TPHOLs'07)
          <string-name>
            <surname>: B-Track</surname>
            <given-names>Proceedings</given-names>
          </string-name>
          , pages
          <volume>1</volume>
          {
          <fpage>17</fpage>
          ,
          <string-name>
            <surname>Kaiserslautern</surname>
          </string-name>
          , Germany,
          <year>September 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>S.</given-names>
            <surname>Abed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O. Ait</given-names>
            <surname>Mohamed</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G. Al</given-names>
            <surname>Sammane</surname>
          </string-name>
          .
          <article-title>Reachability Analysis using Multiway Decision Graphs in the HOL Theorem Prover</article-title>
          .
          <source>In Proc. of ACM SAC '08</source>
          , pages
          <fpage>333</fpage>
          {
          <fpage>338</fpage>
          ,
          <string-name>
            <surname>Brazil</surname>
          </string-name>
          ,
          <year>2008</year>
          . ACM Press.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>O.</given-names>
            <surname>Ait-Mohamed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Song</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Cerny</surname>
          </string-name>
          .
          <article-title>On the Non-termination of MDG-based Abstract State Enumeration</article-title>
          .
          <source>Theoretical Computer Science</source>
          ,
          <volume>300</volume>
          :
          <fpage>161</fpage>
          {
          <fpage>179</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>H.</given-names>
            <surname>Amjad</surname>
          </string-name>
          .
          <article-title>Programming a Symbolic Model Checker in a Fully Expansive Theorem Prover</article-title>
          .
          <source>In Proceedings of the 16th International Conference on Theorem Proving in Higher Order Logics</source>
          , volume
          <volume>2758</volume>
          of Lecture Notes in Computer Science, pages
          <volume>171</volume>
          {
          <fpage>187</fpage>
          . Springer-Verlag,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>P.</given-names>
            <surname>Bjesse</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.</given-names>
            <surname>Claessen</surname>
          </string-name>
          .
          <article-title>SAT-based Veri¯cation without State Space Traversal</article-title>
          . In Formal Methods in Computer-Aided Design, pages
          <volume>372</volume>
          {
          <fpage>389</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Bryant</surname>
          </string-name>
          .
          <article-title>Graph-based Algorithms for Boolean Function Manipulation</article-title>
          .
          <source>IEEE Transactions on Computers</source>
          ,
          <volume>35</volume>
          (
          <issue>8</issue>
          ):
          <volume>677</volume>
          {
          <fpage>691</fpage>
          ,
          <year>August 1986</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Bryant</surname>
          </string-name>
          .
          <article-title>Symbolic Boolean Manipulation with Ordered Binary-Decision Diagrams</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>24</volume>
          (
          <issue>3</issue>
          ):
          <volume>293</volume>
          {
          <fpage>318</fpage>
          ,
          <year>1992</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>E. M. Clarke</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Grumberg</surname>
            , and
            <given-names>D. E. Long. Model</given-names>
          </string-name>
          <string-name>
            <surname>Checking</surname>
          </string-name>
          . In
          <string-name>
            <surname>Nato</surname>
            <given-names>ASI</given-names>
          </string-name>
          , volume
          <volume>152</volume>
          <source>of F</source>
          . Springer-Verlag,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>F.</given-names>
            <surname>Corella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Song</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Langevin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Cerny</surname>
          </string-name>
          .
          <article-title>Multiway Decision Graphs for Automated Hardware Veri¯cation</article-title>
          .
          <source>In Formal Methods in System Design</source>
          , volume
          <volume>10</volume>
          , pages
          <fpage>7</fpage>
          {
          <fpage>46</fpage>
          ,
          <year>February 1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>J. Crow</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Owre</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Rushby</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Shankar</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Srivas</surname>
          </string-name>
          .
          <article-title>A Tutorial Introduction to PVS</article-title>
          . http://www.dcs.gla.ac.uk/proper/papers.html.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>M. Davis</surname>
            , G. Logemann, and
            <given-names>D. Loveland.</given-names>
          </string-name>
          <article-title>A Machine Program for TheoremProving</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <volume>5</volume>
          (
          <issue>7</issue>
          ):
          <volume>394</volume>
          {
          <fpage>397</fpage>
          ,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>M. K. Ganai</surname>
            and
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Aziz</surname>
          </string-name>
          .
          <article-title>Improved SAT-based Bounded Reachability Analysis</article-title>
          .
          <source>In ASP-DAC '02: Proceedings of the 2002 conference on Asia South Paci¯c design automation/VLSI Design, page 729</source>
          , Washington, DC, USA,
          <year>2002</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Gordon. From LCF to HOL: A Short History</article-title>
          . pages
          <fpage>169</fpage>
          {
          <fpage>185</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>M. Gordon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Milner</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Wadsworth</surname>
          </string-name>
          .
          <source>Edinburgh LCF</source>
          , volume
          <volume>78</volume>
          of Lecture Notes in Computer Science. Springer,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M. J. C.</surname>
          </string-name>
          <article-title>Gordon. Reachability Programming in HOL98 using BDDs</article-title>
          .
          <source>In International Conference on Theorem Proving in Higher Order Logics TPHOLs, Lecture Notes in Computer Science</source>
          , pages
          <volume>179</volume>
          {
          <fpage>196</fpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>M. J. C.</surname>
          </string-name>
          <article-title>Gordon. Programming Combinations of Deduction and BDD-based Symbolic Calculation</article-title>
          .
          <source>LMS Journal of Computation and Mathematics</source>
          ,
          <volume>5</volume>
          :
          <fpage>56</fpage>
          {
          <fpage>76</fpage>
          ,
          <year>August 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>M. J. C. Gordon</surname>
            and
            <given-names>T. F</given-names>
          </string-name>
          . Melham, editors. Introduction to HOL:
          <article-title>A Theorem Proving Environment for Higher Order Logic</article-title>
          . Cambridge University Press, New York, NY, USA,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>J.</given-names>
            <surname>Harrison</surname>
          </string-name>
          .
          <article-title>Binary Decision Diagrams as a HOL Derived Rule</article-title>
          .
          <source>The Computer Journal</source>
          ,
          <volume>38</volume>
          :
          <fpage>162</fpage>
          {
          <fpage>170</fpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Gerard</surname>
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Holzmann</surname>
          </string-name>
          . Design and Validation of Computer Protocols. Prentice Hall,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. G. Huet, G. Kahn, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Paulin-Mohring</surname>
          </string-name>
          .
          <article-title>The Coq Proof Assistant : A Tutorial</article-title>
          . http://coq.inria.fr/doc/tutorial.html.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>J. J.</given-names>
            <surname>Joyce</surname>
          </string-name>
          and C. H. Seger, editors. The
          <string-name>
            <surname>HOL-Voss</surname>
            <given-names>System</given-names>
          </string-name>
          :
          <article-title>Model Checking inside a General-Purpose Theorem Prover</article-title>
          , volume
          <volume>780</volume>
          of Lecture Notes in Computer Science. Springer,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schneider</surname>
          </string-name>
          and
          <string-name>
            <given-names>T.</given-names>
            <surname>Kropf</surname>
          </string-name>
          .
          <article-title>Verifying Hardware Correctness by Combining Theorem Proving and Model Checking</article-title>
          .
          <source>Technical Report SFB358-C2-5/95, Institut fuÄr Rechnerentwurf und Fehlertoleranz</source>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27. M. Kaufmann, P. Manolios, and
          <string-name>
            <given-names>J. S.</given-names>
            <surname>Moore</surname>
          </string-name>
          .
          <source>Computer-Aided Reasoning: An Approach</source>
          . Kluwer Academic Publishers,
          <year>June 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>S.</given-names>
            <surname>Kort</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tahar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Curzon</surname>
          </string-name>
          .
          <article-title>Hierarchal Veri¯cation using an MDG-HOL Hybrid Tool</article-title>
          .
          <source>International Journal on Software Tools for Technology Transfer</source>
          ,
          <volume>4</volume>
          (
          <issue>3</issue>
          ):
          <volume>313</volume>
          {
          <fpage>322</fpage>
          , May
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <given-names>T.</given-names>
            <surname>Kropf</surname>
          </string-name>
          . Introduction to Formal Hardware Veri¯cation. Springer Verlag,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <given-names>S.</given-names>
            <surname>Krstic</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Matthews</surname>
          </string-name>
          .
          <article-title>Verifying BDD Algorithms through Monadic Interpretation</article-title>
          .
          <source>In VMCAI '02: Revised Papers from the Third International Workshop on Veri¯cation, Model Checking, and Abstract Interpretation</source>
          , pages
          <volume>182</volume>
          {
          <fpage>195</fpage>
          , London, UK,
          <year>2002</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <given-names>R. P.</given-names>
            <surname>Kurshan</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Lamport</surname>
          </string-name>
          .
          <article-title>Veri¯cation of a Multiplier: 64 Bits and Beyond</article-title>
          . In C. Courcoubetis, editor,
          <source>Proceedings of the 5th International Conference on Computer Aided Veri¯cation</source>
          , volume
          <volume>697</volume>
          , pages
          <fpage>166</fpage>
          {
          <fpage>179</fpage>
          ,
          <string-name>
            <surname>Elounda</surname>
          </string-name>
          , Greece,
          <year>1993</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Marques-Silva</surname>
          </string-name>
          and
          <string-name>
            <given-names>K. A.</given-names>
            <surname>Sakallah. GRASP - A New Search</surname>
          </string-name>
          <article-title>Algorithm for Satis¯ability</article-title>
          .
          <source>In Proceedings of IEEE/ACM International Conference on ComputerAided Design</source>
          , pages
          <volume>220</volume>
          {
          <fpage>227</fpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>K. L. McMillan. Symbolic Model Checking</surname>
          </string-name>
          . Kluwer Academic Publishers, Boston, Massachusetts,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <string-name>
            <surname>K. L. McMillan. Symbolic Model Checking</surname>
          </string-name>
          . Kluwer Academic Publishers, Boston, Massachusetts,
          <year>1993</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <given-names>T.</given-names>
            <surname>Melham</surname>
          </string-name>
          .
          <article-title>Integrating Model Checking and Theorem Proving in a Re°ective Functional Language</article-title>
          . In Eerke A.
          <string-name>
            <surname>Boiten</surname>
          </string-name>
          , John Derrick, and Graeme Smith, editors,
          <source>Integrated Formal Methods: 4th International Conference, IFM 2004: Canterbury, UK, April</source>
          <volume>4</volume>
          {
          <fpage>7</fpage>
          ,
          <year>2004</year>
          : Proceedings, volume
          <volume>2999</volume>
          of Lecture Notes in Computer Science, pages
          <volume>36</volume>
          {
          <fpage>39</fpage>
          . Springer-Verlag,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <string-name>
            <given-names>T.</given-names>
            <surname>Mhamdi</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Tahar</surname>
          </string-name>
          . Providing Automated Veri¯
          <article-title>cation in HOL using MDGs</article-title>
          .
          <source>In Automated Technology for Veri¯cation and Analysis</source>
          , pages
          <volume>278</volume>
          {
          <fpage>293</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <string-name>
            <given-names>R.</given-names>
            <surname>Mizouni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tahar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Curzon</surname>
          </string-name>
          .
          <article-title>Hybrid Veri¯cation Incorporating HOL Theorem Proving and MDG Model Checking</article-title>
          .
          <source>Microelectronics Journal</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>M. W. Moskewicz</surname>
            ,
            <given-names>C. F.</given-names>
          </string-name>
          <string-name>
            <surname>Madigan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Zhang</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Malik</surname>
          </string-name>
          . Cha®:
          <article-title>Engineering an E±cient SAT Solver</article-title>
          .
          <source>In Proceedings of the 38th Design Automation Conference (DAC'01)</source>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <given-names>K. S.</given-names>
            <surname>Namjoshi</surname>
          </string-name>
          .
          <article-title>Certifying Model Checkers</article-title>
          .
          <source>In CAV '01: Proceedings of the 13th International Conference on Computer Aided Veri¯cation</source>
          , pages
          <volume>2</volume>
          {
          <fpage>13</fpage>
          , London, UK,
          <year>2001</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <given-names>V.</given-names>
            <surname>Ortner</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Schirmer</surname>
          </string-name>
          .
          <article-title>Veri¯cation of BDD Normalization</article-title>
          . In TPHOLs, pages
          <volume>261</volume>
          {
          <fpage>277</fpage>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <given-names>L. C.</given-names>
            <surname>Paulson</surname>
          </string-name>
          .
          <article-title>Isabelle: A Generic Theorem Prover</article-title>
          . Springer Verlag,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <given-names>V.</given-names>
            <surname>Pisini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tahar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Curzon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Ait-Mohamed</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Song</surname>
          </string-name>
          .
          <article-title>Formal Hardware Veri¯cation by Integrating HOL and MDG</article-title>
          .
          <source>In Proc. of IEEE GLS-VLSI'00</source>
          , Chicago, USA, Chicago, Illinois, USA,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <given-names>J.</given-names>
            <surname>Quille</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          .
          <article-title>Speci¯cation and Veri¯cation of Concurrent Systems in CESAR</article-title>
          . In M. Dezani-Ciancaglini and Ogo Montanari, editors,
          <source>Proceedings of the 5th International Symposium on Programming</source>
          , volume
          <volume>137</volume>
          , pages
          <fpage>337</fpage>
          {
          <fpage>351</fpage>
          . Springer-Verlag,
          <year>1982</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <given-names>R.</given-names>
            <surname>Boulton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gordon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.J.C.</given-names>
            <surname>Gordon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Herbert</surname>
          </string-name>
          , and J. van Tassel.
          <article-title>Experience with Embedding Hardware Description Languages in HOL</article-title>
          .
          <source>In Proc. of the International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience</source>
          , pages
          <volume>129</volume>
          {
          <fpage>156</fpage>
          ,
          <string-name>
            <surname>Nijmegen</surname>
          </string-name>
          ,
          <year>1992</year>
          . North-Holland.
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <given-names>W.</given-names>
            <surname>Reif</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ruf</surname>
          </string-name>
          , G. Schellhorn, and
          <string-name>
            <given-names>T.</given-names>
            <surname>Vollmer</surname>
          </string-name>
          .
          <article-title>Do you Trust your Model Checker? In Warren A. Hunt Jr</article-title>
          . and
          <string-name>
            <surname>Steven D</surname>
          </string-name>
          . Johnson, editors,
          <source>Formal Methods in Computer Aided Design (FMCAD)</source>
          .
          <source>Springer LNCS</source>
          <year>1954</year>
          ,
          <year>November 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46.
          <string-name>
            <given-names>S.</given-names>
            <surname>Rajan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Shankar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M. K.</given-names>
            <surname>Srivas</surname>
          </string-name>
          .
          <article-title>An Integration of Model Checking with Automated Proof Checking</article-title>
          . In P. Wolper, editor,
          <source>Proceedings of the 7th International Conference On Computer Aided Veri¯cation</source>
          , volume
          <volume>939</volume>
          , pages
          <fpage>84</fpage>
          {
          <fpage>97</fpage>
          ,
          <string-name>
            <surname>Liege</surname>
          </string-name>
          , Belgium,
          <year>1995</year>
          . Springer Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47.
          <string-name>
            <given-names>K.</given-names>
            <surname>Schneider</surname>
          </string-name>
          and
          <string-name>
            <surname>D.</surname>
          </string-name>
          <article-title>Ho®mann. A HOL Conversion for Translating Linear Time Temporal Logic to !-automata</article-title>
          . In TPHOLs, volume
          <volume>1690</volume>
          , pages
          <fpage>255</fpage>
          {
          <fpage>272</fpage>
          ,
          <string-name>
            <surname>Nice</surname>
          </string-name>
          , France,
          <year>1999</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          48.
          <string-name>
            <given-names>C. H.</given-names>
            <surname>Seger</surname>
          </string-name>
          . Voss {
          <string-name>
            <given-names>A Formal</given-names>
            <surname>Hardware</surname>
          </string-name>
          <article-title>Veri¯cation System, User's Guide</article-title>
          .
          <source>Technical report, Nortel Networks</source>
          , Ottawa, Canada, The University of British Columbia,
          <year>December 1993</year>
          . ftp ftp.cs.ubc.ca:
          <fpage>ftplocaltechreports1993TR</fpage>
          -
          <fpage>93</fpage>
          -45.ps.
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          49.
          <string-name>
            <surname>M. Sheeran</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Singh</surname>
            ,
            <given-names>and G.</given-names>
          </string-name>
          <string-name>
            <surname>Staalmarck. Checking Safety</surname>
          </string-name>
          <article-title>Properties using Induction and a SAT-Solver</article-title>
          .
          <source>In FMCAD '00: Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design</source>
          , pages
          <volume>108</volume>
          {
          <fpage>125</fpage>
          , London, UK,
          <year>2000</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          50.
          <string-name>
            <surname>K. N. Verma</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Goubault-Larrecq</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Prasad</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Arun-Kumar</surname>
          </string-name>
          .
          <article-title>Re°ecting BDDs in Coq</article-title>
          .
          <source>In Proc. 6th Asian Computing Science Conference (ASIAN'</source>
          <year>2000</year>
          ), Penang, Malaysia, Nov.
          <year>2000</year>
          , volume
          <year>1961</year>
          , pages
          <fpage>162</fpage>
          {
          <fpage>181</fpage>
          . Springer,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          51.
          <string-name>
            <given-names>J.</given-names>
            <surname>Wright</surname>
          </string-name>
          .
          <article-title>Representing Higher-Order Logic Proofs in HOL</article-title>
          .
          <source>In Proceedings of the 7th International Workshop on Higher Order Logic Theorem Proving and Its Applications</source>
          , pages
          <volume>456</volume>
          {
          <fpage>470</fpage>
          , London, UK,
          <year>1994</year>
          . Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          52. H.
          <string-name>
            <surname>Xiong</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Curzon</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Tahar</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Blandford</surname>
          </string-name>
          .
          <article-title>Providing a Formal Linkage between MDG and HOL</article-title>
          .
          <source>Formal Methods in Systems Design</source>
          ,
          <volume>29</volume>
          (
          <issue>3</issue>
          ):1{
          <fpage>36</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          53.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Song</surname>
          </string-name>
          , E. Cerny, and
          <string-name>
            <given-names>O. Ait</given-names>
            <surname>Mohamed</surname>
          </string-name>
          .
          <article-title>Model Checking for A FirstOrder Temporal Logic using Multiway Decision Graphs (MDGs)</article-title>
          .
          <source>The Computer Journal</source>
          ,
          <volume>47</volume>
          (
          <issue>1</issue>
          ):
          <volume>71</volume>
          {
          <fpage>84</fpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          54.
          <string-name>
            <surname>H. Zhang.</surname>
          </string-name>
          <article-title>SATO: An E±cient Propositional Prover</article-title>
          .
          <source>In Proceedings of the International Conference on Automated Deduction (CADE'97)</source>
          , volume
          <volume>1249</volume>
          <source>of LNAI</source>
          , pages
          <volume>272</volume>
          {
          <fpage>275</fpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>