Email: firstname dot lastname at inf dot ethz dot ch
Office address:
ETH Zurich Systems Group
STF H 313
Stampfenbachstrasse 114
8092 Zürich
Switzerland
Full CV: here

I am a postdoc working with Prof. Timothy (Mothy) Roscoe’s group, in the Systems Group of the Department of Computer Science at ETH Zürich.

I did my PhD at MIT CSAIL with Prof. Adam Chlipala’s group, working on machine-checked end‑to‑end proofs about software-hardware stacks for simple bare-metal embedded systems.

Now, as a postdoc in Mothy’s group, I am excited to learn about real operating systems and to apply formal methods to systems research.

Trouble combining undefined behavior and nondeterminism? ➔ Try omnisemantics!

While working on Bedrock2, my colleague Andres Erbsen and me came up with a style of programming language semantics that we think works much better in the presence of undefined behavior and nondeterminism than using traditional smallstep or bigstep operational semantics would. A little later, our advisor Adam Chlipala chatted with Arthur Charguéraud and they found out that he had discovered the same style of semantics as well, but was using it for functional languages, while we were using it for imperative languages. Together, we wrote a paper about it, or if you prefer just a short introduction, you can also check out this blog post.

Past Projects

Publications

[10] Samuel Gruetter, Thomas Bourgeat, and Adam Chlipala. Verifying Software Emulation of an Unsupported Hardware Instruction. 15th International Conference on Interactive Theorem Proving (ITP 2024), 309, September 2024.
DOI | PDF | code ]
[9] Samuel Gruetter, Viktor Fukala, and Adam Chlipala. Live Verification in an Interactive Proof Assistant. Proceedings of the ACM on Programming Languages, 8(PLDI), June 2024.
DOI | PDF | code ]
[8] Andres Erbsen, Jade Philipoom, Dustin Jamner, Ashley Lin, Samuel Gruetter, Clément Pit-Claudel, and Adam Chlipala. Foundational Integration Verification of a Cryptographic Server. Proceedings of the ACM on Programming Languages, 8(PLDI), June 2024.
DOI | PDF | code ]
[7] Thomas Bourgeat, Ian Clester, Andres Erbsen, Samuel Gruetter, Pratap Singh, Andy Wright, and Adam Chlipala. Flexible Instruction-Set Semantics via Abstract Monads (Experience Report). Proceedings of the ACM on Programming Languages, 7(ICFP), August 2023.
DOI | PDF | code ]
[6] Arthur Charguéraud, Adam Chlipala, Andres Erbsen, and Samuel Gruetter. Omnisemantics: Smooth Handling of Nondeterminism. ACM Transactions on Programming Languages and Systems, 45(1), March 2023.
DOI | PDF | code ]
[5] Andres Erbsen, Samuel Gruetter, Joonwon Choi, Clark Wood, and Adam Chlipala. Integration Verification Across Software and Hardware for a Simple Embedded System. PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation, June 2021.
DOI | PDF | code ]
[4] Qinxiang Cao, Lennart Beringer, Samuel Gruetter, Josiah Dodds, and Andrew W. Appel. VST-Floyd: A Separation Logic Tool to Verify Correctness of C Programs. Journal of Automated Reasoning, 61(1-4), June 2018.
DOI | PDF | code ]
[3] Samuel Gruetter and Toby Murray. Short Paper: Towards Information Flow Reasoning about Real-World C Code. PLAS '17: Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security, October 2017.
DOI | PDF | code ]
[2] Samuel Gruetter, Daniel Graf, and Benjamin Schmid. Watch them Fight! Creativity Task Tournaments of the Swiss Olympiad in Informatics. Olympiads in Informatics, 10(1), July 2016.
DOI | PDF | code ]
[1] Nada Amin, Samuel Gruetter, Martin Odersky, Tiark Rompf, and Sandro Stucki. The Essence of Dependent Object Types. A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday, Lecture Notes in Computer Science LNTCS, volume 9600, March 2016.
DOI | PDF | code ]

Preprints, Theses, Reports

[9] Samuel Gruetter. Techniques for Foundational End-to-End Verification of Systems Stacks. PhD thesis, MIT, September 2024.
PDF ]
[8] Samuel Gruetter. Counterexamples for Coq Conjectures. CoqPL'19, January 2019.
PDF | code ]
[7] Samuel Gruetter and Toby C. Murray. VST-Flow: Fine-grained low-level reasoning about real-world C code. Technical report, University of Melbourne, September 2017.
PDF | code ]
[6] Samuel Gruetter. Improving the Coq proof automation tactics of the Verified Software Toolchain, based on a case study on verifying a C implementation of the AES encryption algorithm. MSc thesis, EPFL/Princeton University, April 2017.
PDF | code ]
[5] Samuel Gruetter. Connecting Scala to DOT. MSc semester project, EPFL, June 2016.
PDF | code ]
[4] Samuel Gruetter. Dependent Object Types With Existential Quantification Over Objects. Research report, EPFL, July 2015.
PDF | code ]
[3] Samuel Gruetter. Improving Leon's Termination Checker. Project report, EPFL, June 2015.
PDF | code ]
[2] Samuel Gruetter. Machine-checked typesafety proofs. MSc semester project, EPFL, June 2014.
PDF | code ]
[1] Samuel Gruetter. Explorations of type systems. BSc semester project, EPFL, June 2013.
PDF | code ]

Education

Industry Experience