Publication: That’s correct: Using the Verified Software
Toolchain to verify C maps
| datacite.rights | restricted | |
| dc.contributor.advisor | Appel, Andrew | |
| dc.contributor.author | Yucht, Miles | |
| dc.date.accessioned | 2015-06-26T14:25:56Z | |
| dc.date.accessioned | 2026-09-29T21:57:28Z | |
| dc.date.available | 2015-06-26T14:25:56Z | |
| dc.date.available | 2026-09-29T21:57:28Z | |
| dc.date.created | 2015-04-30 | |
| dc.date.issued | 2015-06-26 | |
| dc.description.abstract | Here, I present the formal verifications of two implementations of the map abstract data type between integer values, one as a linked list and one as a hashtable whose buckets are linked lists. The linked list and hashtable programs are written in Verifiable C. To verify these programs, I develop a formalization for the finite map data structure based on functions with domain A and range option B, where A, B are types. Then, I prove several lemmas which relate abstract finite maps to Coq data structures; this so-called representation relation of the abstract map is used to link finite maps to separation logic predicates, which allow one to formally make an assertion such as "there exists a map m at memory location l." Using these predicates, I create a set of formal specifications for the linked-list program, and then I prove that the linked-list program obeys these specifications. Then, I generalize the linked-list specification so that it can be used to describe the hashtable implementation as well, and using this generalized specification, I prove the correctness of the hashtable implementation. Finally, I present a brief usability review of the VST, highlighting the success and failures in my experience using the VST. | en_US |
| dc.format.extent | 53 pages | en_US |
| dc.identifier.uri | http://arks.princeton.edu/ark:/88435/dsp010g354h53q | |
| dc.identifier.uri | https://theses-dissertations.princeton.edu/handle/88435/dsp010g354h53q | |
| dc.language.iso | en_US | en_US |
| dc.title | That’s correct: Using the Verified Software Toolchain to verify C maps | en_US |
| dc.type | Princeton University Senior Theses | |
| dspace.entity.type | Publication | |
| pu.date.classyear | 2015 | en_US |
| pu.department | Computer Science | en_US |
| pu.pdf.coverpage | SeniorThesisCoverPage |
Files
Original bundle
1 - 1 of 1
Loading...
- Name:
- PUTheses2015-Yucht_Miles.pdf
- Size:
- 623.11 KB
- Format:
- Adobe Portable Document Format
Download