Award Abstract # 2107206
Collaborative Research: SHF: Medium: Efficient and Trustworthy Proof Engineering

NSF Org: CCF
Division of Computing and Communication Foundations
Recipient: UNIVERSITY OF MARYLAND, COLLEGE PARK
Initial Amendment Date: April 12, 2021
Latest Amendment Date: April 30, 2024
Award Number: 2107206
Award Instrument: Continuing Grant
Program Manager: Anindya Banerjee
abanerje@nsf.gov
 (703)292-7885
CCF
 Division of Computing and Communication Foundations
CSE
 Directorate for Computer and Information Science and Engineering
Start Date: May 1, 2021
End Date: April 30, 2025 (Estimated)
Total Intended Award Amount: $539,956.00
Total Awarded Amount to Date: $539,956.00
Funds Obligated to Date: FY 2021 = $325,906.00
FY 2022 = $105,412.00

FY 2024 = $108,638.00
History of Investigator:
  • Leonidas Lampropoulos (Principal Investigator)
    leonidas@umd.edu
Recipient Sponsored Research Office: University of Maryland, College Park
3112 LEE BUILDING
COLLEGE PARK
MD  US  20742-5100
(301)405-6269
Sponsor Congressional District: 04
Primary Place of Performance: University of Maryland, College Park
MD  US  20742-3370
Primary Place of Performance
Congressional District:
04
Unique Entity Identifier (UEI): NPU8ULVAAS23
Parent UEI: NPU8ULVAAS23
NSF Program(s): Software & Hardware Foundation
Primary Program Source: 01002122DB NSF RESEARCH & RELATED ACTIVIT
01002223DB NSF RESEARCH & RELATED ACTIVIT

01002324DB NSF RESEARCH & RELATED ACTIVIT

01002425DB NSF RESEARCH & RELATED ACTIVIT
Program Reference Code(s): 7924, 7943
Program Element Code(s): 779800
Award Agency Code: 4900
Fund Agency Code: 4900
Assistance Listing Number(s): 47.070

ABSTRACT

Formal verification of software in a proof assistant (such as Coq) can establish the correctness of software, preventing software bugs that could otherwise lead to significant financial losses or even loss of life. Unfortunately, proof assistants are not currently well adapted to large-scale software development and are expensive to use in terms of both development time and expertise. The goal of this project is to increase productivity of proof engineers (i.e., users of proof assistants) via techniques that simplify development and maintenance of large verification projects, as well as to increase trustworthiness in the toolchain commonly used by proof engineers. The project's novelties include learning-based and analytical approaches for proof construction, extraction, and maintenance, as well as testing techniques for establishing the trustworthiness of proof assistants. The project's impacts are increased productivity and increased software quality.

This project develops techniques that help proof engineers (1) construct proofs by learning and enforcing conventions, automatically locating relevant lemmas, and synthesizing generalized invariants; (2) augment the extraction of executable code from verified artifacts with runtime monitoring for checking assumption violations and with novel support for generating executable variants of logical specifications; and (3) facilitate the maintenance of large proof repositories by detecting brittle proof scripts, as well as learning common transformations. Furthermore, to increase trust in the proof engineering toolchain, the investigators develop testing techniques that target the core components of proof assistants.

This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.

PUBLICATIONS PRODUCED AS A RESULT OF THIS RESEARCH

Note:  When clicking on a Digital Object Identifier (DOI) number, you will be taken to an external site maintained by the publisher. Some full text articles may not yet be available without a charge during the embargo (administrative interval).

Some links on this page may take you to non-federal websites. Their policies may differ from this site.

Blanchette, Henry and Vazou, Niki and Lampropoulos, Leonidas "Liquid proof macros" International Symposium on Haskell , 2022 https://doi.org/10.1145/3546189.3549921 Citation Details
Frank, Justin and Quiring, Benjamin and Lampropoulos, Leonidas "Generating Well-Typed Terms That Are Not Useless" Proceedings of the ACM on Programming Languages , v.8 , 2024 https://doi.org/10.1145/3632919 Citation Details
Hoang, Tram and Trunov, Anton and Lampropoulos, Leonidas and Sergey, Ilya "Random testing of a higher-order blockchain language (experience report)" Proceedings of the ACM on Programming Languages , v.6 , 2022 https://doi.org/10.1145/3547653 Citation Details
Paraskevopoulou, Zoe and Eline, Aaron and Lampropoulos, Leonidas "Computing correctly with inductive relations" Programming Language Design and Implementation , 2022 https://doi.org/10.1145/3519939.3523707 Citation Details
Prinz, Jacob and Blanchette, Henry and Lampropoulos, Leonidas "Pantograph: A Fluid and Typed Structure Editor" Proceedings of the ACM on Programming Languages , v.9 , 2025 https://doi.org/10.1145/3704864 Citation Details
Prinz, Jacob and Kavvos, G. A. and Lampropoulos, Leonidas "Deeper Shallow Embeddings" International Conference on Interactive Theorem Proving , 2022 Citation Details
Prinz, Jacob and Lampropoulos, Leonidas "Merging Inductive Relations" Proceedings of the ACM on Programming Languages , v.7 , 2023 https://doi.org/10.1145/3591292 Citation Details

Please report errors in award information by writing to: awardsearch@nsf.gov.

Print this page

Back to Top of page