A program logic for first-order encapsulated WebAssembly
File(s)LIPIcs-ECOOP-2019-9.pdf (764.91 KB)
Published version
Author(s)
Watt, Conrad
Maksimovic, petar
Neelakantan R., Krishnaswami
Gardner, Philippa
Type
Conference Paper
Abstract
We introduce Wasm Logic, a sound program logic for first-order, encapsulated WebAssembly. Wedesign a novel assertion syntax, tailored to WebAssembly’s stack-based semantics and the strongguarantees given by WebAssembly’s type system, and show how to adapt the standard separationlogic triple and proof rules in a principled way to capture WebAssembly’s uncommon structuredcontrol flow. Using Wasm Logic, we specify and verify a simple WebAssembly B-tree library, givingabstract specifications independent of the underlying implementation. We mechanise Wasm Logicand its soundness proof in full in Isabelle/HOL. As part of the soundness proof, we formaliseand fully mechanise a novel, big-step semantics of WebAssembly, which we prove equivalent, upto transitive closure, to the original WebAssembly small-step semantics. Wasm Logic is the firstprogram logic for WebAssembly, and represents a first step towards the creation of static analysistools for WebAssembly.
Date Issued
2019-07
Date Acceptance
2019-04-01
Citation
Leibniz International Proceedings in Informatics Schloss Dagstuhl, 2019, 134
ISSN
1868-8969
Publisher
Leibniz-Zentrum für Informatik, Dagstuhl Publishing
Journal / Book Title
Leibniz International Proceedings in Informatics Schloss Dagstuhl
Volume
134
Copyright Statement
© 2019 Conrad Watt, Petar Maksimović, Neelakantan R. Krishnaswami, and Philippa Gardner;
licensed under Creative Commons License CC-BY
licensed under Creative Commons License CC-BY
License URL
Sponsor
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Engineering & Physical Science Research Council (E
Grant Number
EP/R034567/1
EP/P021921/1
EP/K008528/1 - RG65358
EP/K008528/1
Source
33rd European Conference on Object-Oriented Programming (ECOOP 2019).
Publication Status
Published
Start Date
2019-07-15
Finish Date
2019-07-19
Coverage Spatial
London, UK
Date Publish Online
2019-07