Title |
Formal verification of programs and their transformations |
Publication Type |
dissertation |
School or College |
College of Engineering |
Department |
Computing |
Author |
Li, Guodong |
Date |
2010-12 |
Description |
Formal verification is an act of using formal methods to check the correctness of intended programs. The verification is done by providing a formal proof on an abstract mathematical model of the program, with respect to a certain formal specification or property. We present three case studies on using formal methods to verify programs and their transformations: (1) we use term rewriting and theorem proving to construct and validate a compiler from logic specifications to ARM assembly code; the equivalence of a source specification and the generated assembly code is proven mechanically with respect to the formal semantics; (2) we model, in an \executable" declarative language TLA+, the Message Passing Interface (MPI) 2.0 library as well as C programs using MPI calls for parallel computations; and use explicit model checking to check the specifications and programs; and (3) we model CUDA kernel programs as symbolic logical formulas, and use constraint solving to automatically reason about these Graphics Processing Unit (GPU) kernels. |
Type |
Text |
Publisher |
University of Utah |
Subject |
Compiler verification; Formal verification; GPU program; Parallel program; SMT solving; Theorem proving |
Subject LCSH |
Formal methods (College of Engineering; (School of);) |
Dissertation Institution |
University of Utah |
Dissertation Name |
PhD |
Language |
eng |
Rights Management |
©Guodong Li |
Format |
application/pdf |
Format Medium |
application/pdf |
Format Extent |
1,114,550 bytes |
Source |
Original in Marriott Library Special Collections, QA3.5 2010 .L5 |
ARK |
ark:/87278/s6qr5bq2 |
Setname |
ir_etd |
ID |
193394 |
Reference URL |
https://collections.lib.utah.edu/ark:/87278/s6qr5bq2 |