Verification of software and embedded systems using AIG solvers -

dc.contributor.authorNoureddine, Mohamad Ali
dc.contributor.departmentDepartment of Electrical and Computer Engineering
dc.contributor.facultyFaculty of Engineering and Architecture
dc.contributor.institutionAmerican University of Beirut
dc.date2014
dc.date.accessioned2015-02-03T10:35:05Z
dc.date.available2015-02-03T10:35:05Z
dc.date.issued2014
dc.date.submitted2014
dc.descriptionThesis. M.E. American University of Beirut. Department of Electrical and Computer Engineering, 2014. ET:6041
dc.descriptionCo-Advisor : Dr. Fadi Zaraket, Assistant Professor, Electrical and Computer Engineering ; Members of Committee: Dr. Louay Bazzi, Associate Professor, Electrical and Computer Engineering ; Dr. Wassim Masri, Associate Professor, Electrical and Computer Engineering.
dc.descriptionIncludes bibliographical references (leaves 57-61)
dc.description.abstractIt is critical for software and hardware developers to design correct and reliable systems. In particular, safety critical systems such as medical equipment, navigation control and targeting devices do not tolerate defects in their logical components. Static analysis techniques are used to check and prove correctness of logic components with respect to formal specifications. In particular, ABC is a model checker that takes an And-Inverter-Graph (AIG) circuit, a directed acyclic graph with two input AND gates, inverters and memory elements, reduces it using synthesis algorithms, and checks it for correctness using proof algorithms. Existing techniques transform software programs and embedded system design components into Conjunctive Normal Form (CNF) formulae and Symbolic Model Verifier (SMV) code, and use satisfiability (SAT) solvers and symbolic model checkers, respectively, to check their validity within a user specified finite domain. These techniques often fail to scale well with the increasing size of systems and with larger finite domains. In this work, we explore the use of AIG solvers to address the verification of software and embedded systems subject to bounds on the data width of their variables. [P]S[Q] translates imperative logic systems, written in a C-like language, into AIG. BIP[I] translates an embedded system, written within the Behavior-Interaction-Priority (BIP) framework, into AIG. Both methods use the ABC AIG solver to reduce the generated AIG circuits using sequential synthesis algorithms, and then check them for validity. The solver either (1) proves the specifications valid within the finite domain, (2) generates a counter example and reports it to the developer for debugging, or (3) reaches its computational bounds before making a decision. We evaluated [P]S[Q] against a set of array and list manipulation algorithms, and various benchmarks obtained from the second competition on software verification (SVComp'13). Results show that [P]S[Q] reaches bounds higher than those possible with t
dc.format.extentx, 61 leaves : illustrations (some color) ; 30 cm
dc.identifier.otherb18265030
dc.identifier.urihttp://hdl.handle.net/10938/10080
dc.language.isoen
dc.relation.ispartofTheses, Dissertations, and Projects
dc.subject.classificationET:006041 AUBNO
dc.subject.lcshComputer software -- Verification.
dc.subject.lcshSoftware engineering.
dc.subject.lcshLogic design -- Computer programs.
dc.subject.lcshComputer programs -- Verification.
dc.subject.lcshComputer logic.
dc.titleVerification of software and embedded systems using AIG solvers -
dc.typeThesis

Files