About
Karl Palmskog is a Lecturer at KTH Royal Institute of Technology in the Division of Theoretical Computer Science and the STEP research group. His work focuses on program verification and proof engineering, with particular emphasis on developing techniques and tools based on proof assistants for constructing functionally correct and secure software systems.
Palmskog received his Ph.D. in Computer Science in 2014 from KTH, advised by Mads Dam, and his M.Sc. in Computer Science and Engineering from KTH in 2007. Prior to his current position, he was a postdoc at The University of Texas at Austin and University of Illinois at Urbana-Champaign.
His research interests span programming languages, software engineering, and formal verification, with a particular focus on developing techniques and tools based on proof assistants. He is an avid user of the Coq proof assistant for both proving and programming, often complemented by OCaml, and also utilizes HOL4 and other ML family dialects. His work bridges theoretical foundations with practical applications, particularly in the domains of blockchain systems, distributed systems, and automotive software verification.
Analysis of his recent publications reveals a strong focus on Coq-based verification, with significant contributions to proof engineering tools and methodologies. His work includes developing tools for regression proving, change impact analysis, mutation testing for Coq projects, and lemma name suggestion using deep learning. There's also a growing trend toward applying formal methods to real-world systems like blockchain protocols and automotive software.
Palmskog has been involved in several research projects, including Coq-community Proof Engineering and Distributed Components. His past projects include Trustfull (SSF), Model-based Event Driven Scalable Programming for the Mobile Cloud (NSF), Highly Adaptable and Trustworthy Software (EU FP7), and 4WARD Future Internet (EU FP7).
As an educator, Palmskog has served as examiner, course responsible, teacher, and assistant for various courses including Algorithms, Data Structures and Complexity; Degree Projects; Game Theory; Parallel and Distributed Computing; and Programming Paradigms. His work on Chip, a Coq formalization of change impact analysis, demonstrates his commitment to creating practical, certified tools that bridge formal methods with software engineering practice.





