HOL Developed and HOL Used: Interconnected Stories
- f Real-W
- rld Applications
Michael Norrish July 2018
FLoC 2018: HOL developed and HOL used 1
HOL Developed and HOL Used: Interconnected Stories of Real-W orld - - PowerPoint PPT Presentation
HOL Developed and HOL Used: Interconnected Stories of Real-W orld Applications Michael Norrish July 2018 FLoC 2018 : HOL developed and HOL used 1 Cambridge Context in 1994People Recently finished/departed PhDs: Richard Boulton
FLoC 2018: HOL developed and HOL used 1
▶ Richard Boulton (effjcient theorem-proving) ▶ Victor Carreno (real-time systems) ▶ Jim Grundy (refinement, window inference) ▶ Monica Nesi (process calculi) ▶ John V
▶ John Harrison (real numbers, analysis)
FLoC 2018: HOL developed and HOL used 2
FLoC 2018: HOL developed and HOL used 3
▶ Mark Staples (refinement calculus in
▶ Don Syme (theorem-proving for operational
FLoC 2018: HOL developed and HOL used 4
▶ Don Syme changed topic completely after a
▶ Mike suggested C as PhD topic as I got to
▶ I had a lot to learn
FLoC 2018: HOL developed and HOL used 5
▶ Inductive definition package ▶ Data type definition package ▶ Arithmetic decision procedures
FLoC 2018: HOL developed and HOL used 6
▶ mechanised an operational semantics for C
▶ proved some meta-theorems
FLoC 2018: HOL developed and HOL used 7
FLoC 2018: HOL developed and HOL used 8
▶ Result is hol98; first release
FLoC 2018: HOL developed and HOL used 9
▶ add a record type definition principle; ▶ completely rework HOL
▶ change the representation of numerals (from
▶ name the relevant release
FLoC 2018: HOL developed and HOL used 10
▶ With Ken Friis Larsen, integrates BDD
▶ Hardware description languages with Daryl
▶ First moves on ACL2 connections
▶ (Later) Hardware synthesis with
FLoC 2018: HOL developed and HOL used 11
▶ joint work with Graham Birtwistle (Leeds),
▶ Theorem-proving at scale … ▶ … leading to numerous real-world applications
FLoC 2018: HOL developed and HOL used 12
▶ Given time and expertise, custom tools could
▶ Being able to type EVAL “f arg”
FLoC 2018: HOL developed and HOL used 13
FLoC 2018: HOL developed and HOL used 14
FLoC 2018: HOL developed and HOL used 14
FLoC 2018: HOL developed and HOL used 14
FLoC 2018: HOL developed and HOL used 14
▶ Showed that HOL could handle large detailed
▶ first UDP and then TCP ▶ both definitions, and generation of theorems in a
▶ Developed custom tooling (the
FLoC 2018: HOL developed and HOL used 15
▶ Another kernel implementation (more
▶ suitably opaque & well-designed term API
▶ Dictionaries / trees in place of lists in various
FLoC 2018: HOL developed and HOL used 16
▶ working with Sewell on hardware memory
▶ fantastic speed-boost ▶ forces cleaner code ▶ allows powerful tools
FLoC 2018: HOL developed and HOL used 17
▶ Cambridge (Mike, students, postdocs) ▶ Oxford (Joe Hurd, Ashish Darbari) ▶ Australia (me and some students) ▶ USA (Konrad Slind, Peter Homeier, Joe Hurd) ▶ …
FLoC 2018: HOL developed and HOL used 18
▶ wrote “parser” tool to load seL4 C source
▶ HOL + ARM model allows for post hoc
▶ formalisation of theory of context-free
▶ later useful in CakeML FLoC 2018: HOL developed and HOL used 19
▶ µVM project with Blackburn, Hosking and
▶ broader visibility (github) 99% a good thing ▶ responsiveness to demands of major
▶ learning lessons from Isabelle’s more
FLoC 2018: HOL developed and HOL used 20
▶ Had a massive
▶ An energising
▶ Built a system;
FLoC 2018: HOL developed and HOL used 21