| 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 |