Evaluating LLM-driven User-Intent Formalization for Verification-Aware Languages
Not on the map. Why?
Abstract (arXiv)
Verification-aware programming languages such as Dafny and F* provide means to formally specify and prove properties of a program. Although the problem of checking an implementation against a specification can be defined mechanically, there is no algorithmic way of ensuring the correctness of the it user-intent formalization for programs, expressed as a formal specification. This is because intent or requirement is expressed it informally in natural language and the specification is a formal artefact. Despite, the advent of large language models (LLMs) has made tremendous strides bridging the gap between informal intent and formal program implementations recently, driven in large parts by benchmarks and automated metrics for evaluation. Recent work has proposed a framework for evaluating the it user-intent formalization problem for mainstream programming languages~citeendres-fse24. However, such an approach does not readily extend to verification-aware languages that support rich specifications (using quantifiers and ghost variables) that cannot be evaluated through dynamic execution. Previous work also required generating program mutants using LLMs to create the benchmark. We advocate an alternate, perhaps simpler approach of it symbolically testing specifications to provide an intuitive metric for evaluating the quality of specifications for verification-aware languages. We demonstrate that our automated metric agrees closely on a human-labeled dataset of Dafny specifications for the popular MBPP code-generation benchmark, yet demonstrates cases where the human labeling is not perfect. We also outline formal verification challenges that need to be addressed to apply the technique more widely. We believe our work provides a stepping stone to enable the establishment of a benchmark and research agenda for the problem of user-intent formalization for programs.
Key facts. Cited by 16 papers in the map (data through 7 Oct 2026). Builds on 8 of its 23 references that are in the map. First posted on arXiv 14 Jun 2024.
Builds on
8 of 23 references.
References · 8
- 2021Evaluating Large Language Models Trained on Codecited by 8,053
- 2021Program Synthesis with Large Language Modelscited by 3,509
- 2021TOGA: A Neural Method for Test Oracle Generationcited by 57
- 2023Can Large Language Models Transform Natural Language Intent into Formal Method Postconditions?cited by 53
- 2022Interactive Code Generation via Test-Driven User-Intent Formalizationcited by 50
- 2023Verus: Verifying Rust Programs using Linear Ghost Types (extended version)cited by 50
- 2023Finding Inductive Loop Invariants using Large Language Modelscited by 35
- 2017Verified Low-Level Programming Embedded in F*cited by 3
Built on by
Citing papers per year: 2024: 2; 2025: 3; 2026: 11.
16 papers.
Sort:
By area:
- 2024Automated Proof Generation for Rust Code via Self-Evolutioncited by 31
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Modelscited by 11
- 2025VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Veruscited by 8
- 2026Intent Formalization: A Grand Challenge for Reliable Coding in the Age of AI Agentscited by 8
- 2026FM-Agent: Scaling Formal Methods to Large Systems via LLM-Based Hoare-Style Reasoningcited by 6
- 2025Agentic Specification Generator for Move Programscited by 3
- 2026Spec-Harness: Measuring and Improving Behavioral Adequacy of LLM-Synthesized Formal Specificationscited by 2
- 2026CodeSpecBench: Benchmarking LLMs for Executable Behavioral Specification Generationcited by 2
- 2026Certified Program Synthesis with a Multi-Modal Verifiercited by 2
- 2024Assured Automatic Programming via Large Language Modelscited by 1
- 2026Perish or Flourish? A Holistic Evaluation of Large Language Models for Code Generation in Functional Programmingcited by 1
- 2026VeriBound: PAC-Bayesian Generalization Bounds for Process Reward Models Trained with Formal Verification Toolscited by 1
4 more
- 2026Code-Augur: Agentic Vulnerability Detection via Specification Inferencecited by 0
- 2026An Empirical Study of LLM-Generated Specifications for VeriFastcited by 0
- 2026Ceci n'est pas une pipe: AI systems as semantic abstractionscited by 0
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compilercited by 0
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compiler21 Sep 2026
- 2026Ceci n'est pas une pipe: AI systems as semantic abstractions10 Jul 2026
- 2026An Empirical Study of LLM-Generated Specifications for VeriFast25 Jun 2026
- 2026VeriBound: PAC-Bayesian Generalization Bounds for Process Reward Models Trained with Formal Verification Tools17 Jun 2026
- 2026Code-Augur: Agentic Vulnerability Detection via Specification Inference17 Jun 2026
- 2026Certified Program Synthesis with a Multi-Modal Verifier17 Apr 2026
- 2026CodeSpecBench: Benchmarking LLMs for Executable Behavioral Specification Generation14 Apr 2026
- 2026FM-Agent: Scaling Formal Methods to Large Systems via LLM-Based Hoare-Style Reasoning13 Apr 2026
- 2026Spec-Harness: Measuring and Improving Behavioral Adequacy of LLM-Synthesized Formal Specifications31 Mar 2026
- 2026Intent Formalization: A Grand Challenge for Reliable Coding in the Age of AI Agents17 Mar 2026
- 2026Perish or Flourish? A Holistic Evaluation of Large Language Models for Code Generation in Functional Programming5 Jan 2026
- 2025VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Verus28 Oct 2025
4 more
- 2025Agentic Specification Generator for Move Programs29 Sep 2025
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Models26 Feb 2025
- 2024Assured Automatic Programming via Large Language Models24 Oct 2024
- 2024Automated Proof Generation for Rust Code via Self-Evolution21 Oct 2024
- 2024Automated Proof Generation for Rust Code via Self-Evolutioncited by 31
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Modelscited by 11
- 2025VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Veruscited by 8
- 2026Spec-Harness: Measuring and Improving Behavioral Adequacy of LLM-Synthesized Formal Specificationscited by 2
- 2026CodeSpecBench: Benchmarking LLMs for Executable Behavioral Specification Generationcited by 2
- 2026Certified Program Synthesis with a Multi-Modal Verifiercited by 2
- 2024Assured Automatic Programming via Large Language Modelscited by 1
- 2026Perish or Flourish? A Holistic Evaluation of Large Language Models for Code Generation in Functional Programmingcited by 1
- 2026An Empirical Study of LLM-Generated Specifications for VeriFastcited by 0
- 2026Ceci n'est pas une pipe: AI systems as semantic abstractionscited by 0
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compilercited by 0
- 2026Djinnlang: Higher-Level Programming by Unambiguous Specification with an LLM in the Compiler21 Sep 2026
- 2026Ceci n'est pas une pipe: AI systems as semantic abstractions10 Jul 2026
- 2026An Empirical Study of LLM-Generated Specifications for VeriFast25 Jun 2026
- 2026Certified Program Synthesis with a Multi-Modal Verifier17 Apr 2026
- 2026CodeSpecBench: Benchmarking LLMs for Executable Behavioral Specification Generation14 Apr 2026
- 2026Spec-Harness: Measuring and Improving Behavioral Adequacy of LLM-Synthesized Formal Specifications31 Mar 2026
- 2026Perish or Flourish? A Holistic Evaluation of Large Language Models for Code Generation in Functional Programming5 Jan 2026
- 2025VeriStruct: AI-assisted Automated Verification of Data-Structure Modules in Verus28 Oct 2025
- 2025ClassInvGen: Class Invariant Synthesis using Large Language Models26 Feb 2025
- 2024Assured Automatic Programming via Large Language Models24 Oct 2024
- 2024Automated Proof Generation for Rust Code via Self-Evolution21 Oct 2024