kth.sePublications KTH
Change search
Link to record
Permanent link

Direct link
Publications (10 of 19) Show all publications
Lindner, A., Palmskog, K., Constable, S., Dam, M., Guanciale, R. & Nemati, H. (2026). Forward Symbolic Execution for Trustworthy Automation of Binary Code Verification. In: Verification, Model Checking, and Abstract Interpretation - 27th International Conference, VMCAI 2026, Proceedings: . Paper presented at 27th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2026, Rennes, France, January 12-13, 2026 (pp. 147-172). Springer Science and Business Media Deutschland GmbH
Open this publication in new window or tab >>Forward Symbolic Execution for Trustworthy Automation of Binary Code Verification
Show others...
2026 (English)In: Verification, Model Checking, and Abstract Interpretation - 27th International Conference, VMCAI 2026, Proceedings, Springer Science and Business Media Deutschland GmbH , 2026, p. 147-172Conference paper, Published paper (Refereed)
Abstract [en]

Control flow in unstructured programs can be complex and dynamic, which makes static analysis difficult. Yet, automated reasoning about unstructured control flow is important when certifying properties of binary (machine) code in trustworthy systems, e.g., cryptographic routines. We present a theory of forward symbolic execution for unstructured programs suitable for use in theorem provers that enables automated verification of both functional and non-functional program properties. The theory’s foundation is a set of inference rules where each member corresponds to an operation in a symbolic execution engine. The rules are designed to give control over the tradeoff between the preservation of precision and introduction of overapproximation. We instantiate our theory for BIR, a previously proposed intermediate language for binary analysis. We demonstrate how symbolic executors can be constructed for BIR with common optimizations such as pruning of infeasible symbolic states. We implemented our theory in the HOL4 theorem prover using the HolBA binary analysis library, obtaining machine-checked proofs of soundness of symbolic execution for BIR. We practically evaluated two applications of our theory: verification of functional properties of RISC-V binaries and verification of execution time bounds of programs running on the ARM Cortex-M0 processor. The evaluation shows that such verification can be automated with moderate overhead on medium-sized programs.

Place, publisher, year, edition, pages
Springer Science and Business Media Deutschland GmbH, 2026
Keywords
binary analysis, symbolic execution, theorem proving
National Category
Computer Sciences Computer Systems Control Engineering
Identifiers
urn:nbn:se:kth:diva-376726 (URN)10.1007/978-3-032-15700-3_8 (DOI)2-s2.0-105028353230 (Scopus ID)
Conference
27th International Conference on Verification, Model Checking, and Abstract Interpretation, VMCAI 2026, Rennes, France, January 12-13, 2026
Note

Part of ISBN 9783032156990

QC 20260217

Available from: 2026-02-17 Created: 2026-02-17 Last updated: 2026-02-17Bibliographically approved
Palmskog, K., Nyberg, M. & Gurov, D. (2026). Machine-Checked Compositional Specification and Proofs for Embedded Systems. In: Rummer, P Wu, Z (Ed.), Theoretical Aspects Of Software Engineering, TASE 2025: . Paper presented at 19th International Conference on Theoretical Aspects of Software Engineering-TASE-Annual, JUL 14-16, 2025, Limassol, CYPRUS (pp. 67-82). Springer Nature, 15841
Open this publication in new window or tab >>Machine-Checked Compositional Specification and Proofs for Embedded Systems
2026 (English)In: Theoretical Aspects Of Software Engineering, TASE 2025 / [ed] Rummer, P Wu, Z, Springer Nature , 2026, Vol. 15841, p. 67-82Conference paper, Published paper (Refereed)
Abstract [en]

The effort of formal verification of large heterogeneous systems needs to scale linearly with the number of interacting components, to be feasible in industrial practice. This is made possible by compositional specification methods and proof systems. In this paper, we demonstrate how trustworthy verified decomposition can be performed for an industry-relevant embedded system: a fuel level display. We first formalize the underlying theory in the HOL4 theorem prover, and augment this theory to allow specifications using Metric Interval Temporal Logic (MITL). We then state a top-level specification for our system using MITL and decompose it down to the system components. Our HOL4 formalization provides a corrected and extended restatement of a general specification language and proof system from previous work and showcases its usefulness for verified decomposition of systems.

Place, publisher, year, edition, pages
Springer Nature, 2026
Series
Lecture Notes in Computer Science, ISSN 0302-9743
Keywords
Compositional proof, formal verification, embedded systems, HOL4
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-375583 (URN)10.1007/978-3-031-98208-8_5 (DOI)001584458800005 ()2-s2.0-105011357801 (Scopus ID)978-3-031-98207-1 (ISBN)978-3-031-98208-8 (ISBN)
Conference
19th International Conference on Theoretical Aspects of Software Engineering-TASE-Annual, JUL 14-16, 2025, Limassol, CYPRUS
Note

QC 20260121

Available from: 2026-01-21 Created: 2026-01-21 Last updated: 2026-01-26Bibliographically approved
de Almeida Borges, A., Casanueva Artís, A., Falleri, J. R., Gallego Arias, E. J., Martin-Dorel, É., Palmskog, K., . . . Zimmermann, T. (2025). Lessons for Interactive Theorem Proving Researchers from a Survey of Coq Users. Journal of automated reasoning, 69(1), Article ID 8.
Open this publication in new window or tab >>Lessons for Interactive Theorem Proving Researchers from a Survey of Coq Users
Show others...
2025 (English)In: Journal of automated reasoning, ISSN 0168-7433, E-ISSN 1573-0670, Vol. 69, no 1, article id 8Article in journal (Refereed) Published
Abstract [en]

The Coq Community Survey 2022 was an online public survey of users of the Coq proof assistant conducted during February 2022. Broadly, the survey asked about use of Coq features, user interfaces, libraries, plugins, and tools, views on renaming Coq and Coq improvements, and also demographic data such as education and experience with Coq and other proof assistants and programming languages. The survey received 466 submitted responses, making it the largest survey of users of an interactive theorem prover (ITP) so far. We present the design of the survey, a summary of key results, and analysis of answers relevant to ITP technology development and usage. In particular, we analyze user characteristics associated with adoption of tools and libraries and make comparisons to adjacent software communities. Notably, we find that experience has significant impact on Coq user behavior, including on usage of tools, libraries, and integrated development environments (IDEs).

Place, publisher, year, edition, pages
Springer Nature, 2025
Keywords
Community, Coq, Statistical analysis, Survey
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-360894 (URN)10.1007/s10817-025-09720-1 (DOI)001427046000001 ()2-s2.0-85218425845 (Scopus ID)
Note

QC 20250310

Available from: 2025-03-05 Created: 2025-03-05 Last updated: 2025-03-10Bibliographically approved
Ung, G., Amilon, J., Gurov, D., Lidström, C., Nyberg, M. & Palmskog, K. (2024). Post-Hoc Formal Verification of Automotive Software with Informal Requirements: An Experience Report. In: Proceedings - 32nd IEEE International Requirements Engineering Conference, RE 2024: . Paper presented at 32nd IEEE International Requirements Engineering Conference, RE 2024, Reykjavik, Iceland, Jun 24 2024 - Jun 28 2024 (pp. 287-298). Institute of Electrical and Electronics Engineers (IEEE)
Open this publication in new window or tab >>Post-Hoc Formal Verification of Automotive Software with Informal Requirements: An Experience Report
Show others...
2024 (English)In: Proceedings - 32nd IEEE International Requirements Engineering Conference, RE 2024, Institute of Electrical and Electronics Engineers (IEEE) , 2024, p. 287-298Conference paper, Published paper (Refereed)
Abstract [en]

In this paper, we report on our experience with formally specifying and verifying an industrial software module, provided to us by a company from the heavy-vehicle industry. We start with a set of 32 informally stated requirements, also provided by the company. We discuss at length the formalization process of informally stated requirements for the purposes of their subsequent formal verification. Depending on the nature of each requirement, one of three languages was used: ACSL contracts, LTL or MITL. We use the Frama-C deductive verification framework to verify the source code of the module against the formalized requirements, with the outcome that 21 requirements are successfully verified while 6 are not. The remaining 5 requirements could not be verified for the module itself, as they specify behavior outside it. We illustrate what steps we took to convert LTL and MITL formulas into ACSL contracts to enable their verification in Frama-C. Finally, we discuss conclusions we drew from our work, notably that formal-verification-driven development of modules and verified breakdown of system requirements could likely remedy some problems we encountered.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2024
Keywords
formal verification, Industrial requirements, requirements formalization
National Category
Software Engineering Computer Sciences
Identifiers
urn:nbn:se:kth:diva-353526 (URN)10.1109/RE59067.2024.00035 (DOI)001300544600027 ()2-s2.0-85202716903 (Scopus ID)
Conference
32nd IEEE International Requirements Engineering Conference, RE 2024, Reykjavik, Iceland, Jun 24 2024 - Jun 28 2024
Note

Part of ISBN 9798350395112

QC 20240924

Available from: 2024-09-19 Created: 2024-09-19 Last updated: 2024-10-30Bibliographically approved
de Almeida Borges, A., Artís, A. C., Falleri, J. R., Arias, E. J., Martin-Dorel, É., Palmskog, K., . . . Zimmermann, T. (2023). Lessons for Interactive Theorem Proving Researchers from a Survey of Coq Users. In: 14th International Conference on Interactive Theorem Proving, ITP 2023: . Paper presented at 14th International Conference on Interactive Theorem Proving, ITP 2023, Bialystok, Poland, Jul 31 2023 - Aug 4 2023. Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing, Article ID 12.
Open this publication in new window or tab >>Lessons for Interactive Theorem Proving Researchers from a Survey of Coq Users
Show others...
2023 (English)In: 14th International Conference on Interactive Theorem Proving, ITP 2023, Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing , 2023, article id 12Conference paper, Published paper (Refereed)
Abstract [en]

The Coq Community Survey 2022 was an online public survey of users of the Coq proof assistant conducted during February 2022. Broadly, the survey asked about use of Coq features, user interfaces, libraries, plugins, and tools, views on renaming Coq and Coq improvements, and also demographic data such as education and experience with Coq and other proof assistants and programming languages. The survey received 466 submitted responses, making it the largest survey of users of an interactive theorem prover (ITP) so far. We present the design of the survey, a summary of key results, and analysis of answers relevant to ITP technology development and usage. In particular, we analyze user characteristics associated with adoption of tools and libraries and make comparisons to adjacent software communities. Notably, we find that experience has significant impact on Coq user behavior, including on usage of tools, libraries, and integrated development environments.

Place, publisher, year, edition, pages
Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing, 2023
Keywords
Community, Coq, Statistical Analysis, Survey
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-336770 (URN)10.4230/LIPIcs.ITP.2023.12 (DOI)001515590500012 ()2-s2.0-85168761707 (Scopus ID)
Conference
14th International Conference on Interactive Theorem Proving, ITP 2023, Bialystok, Poland, Jul 31 2023 - Aug 4 2023
Note

Part of ISBN 9783959772846

QC 20230920

Available from: 2023-09-20 Created: 2023-09-20 Last updated: 2025-12-08Bibliographically approved
Palmskog, K., Yao, X., Dong, N., Guanciale, R. & Dam, M. (2022). Foundations and Tools in HOL4 for Analysis of Microarchitectural Out-of-Order Execution. In: Proceedings of the 22nd Conference on Formal Methods in Computer-Aided Design, FMCAD 2022: . Paper presented at 2022 Formal Methods in Computer-Aided Design (FMCAD), 17-21 October 2022, Trento, Italy (pp. 129-138). Institute of Electrical and Electronics Engineers (IEEE)
Open this publication in new window or tab >>Foundations and Tools in HOL4 for Analysis of Microarchitectural Out-of-Order Execution
Show others...
2022 (English)In: Proceedings of the 22nd Conference on Formal Methods in Computer-Aided Design, FMCAD 2022, Institute of Electrical and Electronics Engineers (IEEE) , 2022, p. 129-138Conference paper, Published paper (Refereed)
Abstract [en]

Program analyses based on Instruction Set Architecture (ISA) abstractions can be circumvented using microarchitectural vulnerabilities, permitting unwanted program information flows even when proven ISA-level properties ostensibly rule them out. However, the low abstraction levels found below ISAs, e.g., in microarchitectures defined in hardware description languages, may obscure information flow and hinder analysis tool development. We present a machine-checked formalization in the HOL4 theorem prover of a language, MIL, that abstractly describes microarchitectural in-order and out-of-order program execution and enables reasoning about low-level program information flows. In particular, MIL programs can exhibit information flow side channels when executed out-of-order, as compared to a reference in-order execution. We prove memory consistency between MIL's out-of-order and in-order dynamic semantics in HOL4, and define a notion of conditional noninterference for MIL programs which rules out trace-driven cache side channels. We then demonstrate how to establish conditional noninterference for programs via a novel semi-automated bisimulation based verification strategy inside HOL4 that we apply to several examples. Based on our results, we believe MIL is suitable as a translation target for ISA code to enable information flow analyses.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2022
Series
Formal Methods in Computer-Aided Design
Keywords
HOL4, information flow, interactive theorem proving, microarchitectures, out-of-order execution
National Category
Computer Systems
Identifiers
urn:nbn:se:kth:diva-330691 (URN)10.34727/2022/isbn.978-3-85448-053-2_19 (DOI)001062691400019 ()2-s2.0-85148099314 (Scopus ID)
Conference
2022 Formal Methods in Computer-Aided Design (FMCAD), 17-21 October 2022, Trento, Italy
Note

Part of ISBN 9783854480532

QC 20230630

Available from: 2023-06-30 Created: 2023-06-30 Last updated: 2023-12-21Bibliographically approved
Alshnakat, A., Lundberg, D., Guanciale, R., Dam, M. & Palmskog, K. (2022). HOL4P4: Semantics for a Verified Data Plane. In: EuroP4 2022: Proceedings of the 5th International Workshop on P4 in Europe, Part of CoNEXT 2022. Paper presented at 5th International Workshop on P4 in Europe, EuroP4 2022, co-located with ACM CoNEXT 2022, Rome, Italy, Dec 9 2022 (pp. 39-45). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>HOL4P4: Semantics for a Verified Data Plane
Show others...
2022 (English)In: EuroP4 2022: Proceedings of the 5th International Workshop on P4 in Europe, Part of CoNEXT 2022, Association for Computing Machinery (ACM) , 2022, p. 39-45Conference paper, Published paper (Refereed)
Abstract [en]

We introduce a formal semantics of P4 for the HOL4 interactive theorem prover. We exploit properties of the language, like the absence of call by reference and the copy-in/copy-out mechanism, to define a heapless small-step semantics that is abstract enough to simplify verification, but that covers the main aspects of the language: interaction with the architecture via externs, table match, and parsers. Our formalization is written in the Ott metalanguage, which allows us to export definitions to multiple interactive theorem provers. The exported HOL4 semantics allows us to establish machine-checkable proofs regarding the semantics, properties of P4 programs, and soundness of analysis tools.

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2022
Keywords
formal verification, interactive theorem proving, P4, programming language semantics
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-333491 (URN)10.1145/3565475.3569081 (DOI)001062234700007 ()2-s2.0-85145586258 (Scopus ID)
Conference
5th International Workshop on P4 in Europe, EuroP4 2022, co-located with ACM CoNEXT 2022, Rome, Italy, Dec 9 2022
Note

Part of ISBN 9781450399357

QC 20230802

Available from: 2023-08-02 Created: 2023-08-02 Last updated: 2023-10-16Bibliographically approved
Nie, P., Palmskog, K., Li, J. J. & Gligoric, M. (2021). ROOSTERIZE: Suggesting Lemma Names for Coq Verification Projects Using Deep Learning. In: 2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2021). Paper presented at IEEE/ACM 43rd International Conference on Software Engineering (ICSE), MAY 25-28, 2021, ELECTR NETWORK (pp. 21-24). Institute of Electrical and Electronics Engineers (IEEE)
Open this publication in new window or tab >>ROOSTERIZE: Suggesting Lemma Names for Coq Verification Projects Using Deep Learning
2021 (English)In: 2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2021), Institute of Electrical and Electronics Engineers (IEEE) , 2021, p. 21-24Conference paper, Published paper (Refereed)
Abstract [en]

Naming conventions are an important concern in large verification projects using proof assistants, such as Coq. In particular, lemma names are used by proof engineers to effectively understand and modify Coq code. However, providing accurate and informative lemma names is a complex task, which is currently often carried out manually. Even when lemma naming is automated using rule-based tools, generated names may fail to adhere to important conventions not specified explicitly. We demonstrate a toolchain, dubbed ROOSTERIZE, which automatically suggests lemma names in Coq projects. ROOSTERIZE leverages a neural network model trained on existing Coq code, thus avoiding manual specification of naming conventions. To allow proof engineers to conveniently access suggestions from ROOSTERIZE during Coq project development, we integrated the toolchain into the popular Visual Studio Code editor. Our evaluation shows that ROOSTERIZE substantially outperforms strong baselines for suggesting lemma names and is useful in practice. The demo video for ROOSTERIZE can be viewed at: https://youtu.be/HZ5ac7Q14rc.

Place, publisher, year, edition, pages
Institute of Electrical and Electronics Engineers (IEEE), 2021
Series
Proceedings of the IEEE-ACM International Conference on Software Engineering Companion, ISSN 2574-1926
Keywords
Coq, lemma names, neural networks
National Category
Computer Sciences
Identifiers
urn:nbn:se:kth:diva-304562 (URN)10.1109/ICSE-Companion52605.2021.00026 (DOI)000706450400006 ()2-s2.0-85115700795 (Scopus ID)
Conference
IEEE/ACM 43rd International Conference on Software Engineering (ICSE), MAY 25-28, 2021, ELECTR NETWORK
Note

Part of proceedings: ISBN 978-1-6654-1219-3, QC 20230117

Available from: 2021-11-08 Created: 2021-11-08 Last updated: 2023-01-17Bibliographically approved
Nie, P., Palmskog, K., Li, J. J. & Gligoric, M. (2020). Deep Generation of Coq Lemma Names Using Elaborated Terms. In: Peltier, Nicolas; Sofronie-Stokkermans, Viorica (Ed.), Automated Reasoning: . Paper presented at International Joint Conference on Automated Reasoning (pp. 97-118). Cham: Springer Nature
Open this publication in new window or tab >>Deep Generation of Coq Lemma Names Using Elaborated Terms
2020 (English)In: Automated Reasoning / [ed] Peltier, Nicolas; Sofronie-Stokkermans, Viorica, Cham: Springer Nature , 2020, p. 97-118Conference paper, Published paper (Refereed)
Abstract [en]

Coding conventions for naming, spacing, and other essentially stylistic properties are necessary for developers to effectively understand, review, and modify source code in large software projects. Consistent conventions in verification projects based on proof assistants, such as Coq, increase in importance as projects grow in size and scope. While conventions can be documented and enforced manually at high cost, emerging approaches automatically learn and suggest idiomatic names in Java-like languages by applying statistical language models on large code corpora. However, due to its powerful language extension facilities and fusion of type checking and computation, Coq is a challenging target for automated learning techniques. We present novel generation models for learning and suggesting lemma names for Coq projects. Our models, based on multi-input neural networks, are the first to leverage syntactic and semantic information from Coq ’s lexer (tokens in lemma statements), parser (syntax tree s), and kernel (elaborated terms) for naming; the key insight is that learning from elaborated terms can substantially boost model performance. We implemented our models in a toolchain, dubbed Roosterize, and applied it on a large corpus of code derived from the Mathematical Components family of projects, known for its stringent coding conventions. Our results show that Roosterize substantially outperforms baselines for suggesting lemma names, highlighting the importance of using multi-input models and elaborated terms.

Place, publisher, year, edition, pages
Cham: Springer Nature, 2020
Keywords
Proof assistants, Coq, Lemma names, Neural networks
National Category
Computer Sciences
Research subject
Computer Science
Identifiers
urn:nbn:se:kth:diva-279639 (URN)10.1007/978-3-030-51054-1_6 (DOI)000884319500006 ()2-s2.0-85088239702 (Scopus ID)
Conference
International Joint Conference on Automated Reasoning
Funder
Swedish Foundation for Strategic Research , trustfull
Note

QC 20200921

Available from: 2020-08-26 Created: 2020-08-26 Last updated: 2023-09-21Bibliographically approved
Jain, K., Palmskog, K., Celik, A., Gallego Arias, E. J. & Gligoric, M. (2020). mCoq: Mutation Analysis for Coq Verification Projects. In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings. Paper presented at International Conference on Software Engineering (pp. 89-92). Association for Computing Machinery (ACM)
Open this publication in new window or tab >>mCoq: Mutation Analysis for Coq Verification Projects
Show others...
2020 (English)In: Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: Companion Proceedings, Association for Computing Machinery (ACM), 2020, p. 89-92Conference paper, Published paper (Refereed)
Abstract [en]

Software developed and verified using proof assistants, such as Coq, can provide trustworthiness beyond that of software developed using traditional programming languages and testing practices. However, guarantees from formal verification are only as good as the underlying definitions and specification properties. If properties are incomplete, flaws in definitions may not be captured during verification, which can lead to unexpected system behavior and failures. Mutation analysis is a general technique for evaluating specifications for adequacy and completeness, based on making small-scale changes to systems and observing the results. We demonstrate mCoq, the first mutation analysis tool for Coq projects. mCoq changes Coq definitions, with each change producing a modified project version, called a mutant, whose proofs are exhaustively checked. If checking succeeds, i.e., the mutant is live, this may indicate specification incompleteness. Since proof checking can take a long time, we optimized mCoq to perform incremental and parallel processing of mutants. By applying mCoq to popular Coq libraries, we found several instances of incomplete and missing specifications manifested as live mutants. We believe mCoq can be useful to proof engineers and researchers for analyzing software verification projects. The demo video for mCoq can be viewed at: https://youtu.be/QhigpfQ7dNo.

Place, publisher, year, edition, pages
Association for Computing Machinery (ACM), 2020
Keywords
mutation analysis, deductive verification, Coq, proof assistants
National Category
Computer Sciences
Research subject
Computer Science
Identifiers
urn:nbn:se:kth:diva-286278 (URN)10.1145/3377812.3382156 (DOI)000637244600023 ()2-s2.0-85094113121 (Scopus ID)
Conference
International Conference on Software Engineering
Funder
Swedish Foundation for Strategic Research , trustfull
Note

QC 20210607

Available from: 2020-11-24 Created: 2020-11-24 Last updated: 2022-06-25Bibliographically approved
Organisations
Identifiers
ORCID iD: ORCID iD iconorcid.org/0000-0003-0228-1240

Search in DiVA

Show all publications