Powered by OpenAIRE graph
Found an issue? Give us feedback
ZENODOarrow_drop_down
ZENODO
Software . 2026
License: CC BY
Data sources: Datacite
ZENODO
Software . 2026
License: CC BY
Data sources: Datacite
versions View all 2 versions
addClaim

Septemberember/PCaE: Program Comprehension and Evolution via Large Language Models Using Automated Testing-Based Formal Verification

Authors: anonymouscommitter;

Septemberember/PCaE: Program Comprehension and Evolution via Large Language Models Using Automated Testing-Based Formal Verification

Abstract

Official implementation of PCaE Introduction 📝 Background Program comprehension and evolution are critical for software maintenance, yet ensuring functional correctness remains a challenge. Current methods face two major bottlenecks: Manual Effort: Traditional formal verification relies on loop invariants, which are costly to derive and difficult for LLMs to automate. Verification Gap: Standard testing can detect bugs but cannot formally prove that a program satisfies its specification across all paths. PCaE bridges this gap by introducing: FSF (Functional Scenario Form): A concise specification that focuses on input-output relationships rather than complex internal loop logic. TBFV (Testing-Based Formal Verification): A method that integrates Hoare logic with testing to provide formal proofs without requiring loop invariants. This framework allows LLMs to accurately explain code (comprehension) and update implementation (evolution) while maintaining rigorous correctness. 🚀 Quick Start 1. Download & Extract Download PCaE-release.zip from Releases. Ensure the directory structure is as follows: . ├── PCaE-1.0.jar # Executable Fat JAR └── resources/ # Resources folder (Must be in the same directory as the JAR) 2. Setup Environment Java 17+: Ensure Java 17 or higher is installed. Verify by running java -version. Python 3.9: Required for the Z3 SMT solver. Install the dependency via: pip install z3-solver 3. Configure API Key Navigate to resources/config/ and edit your preferred model configuration file (e.g., gpt-5.2.txt): [name]=openai/gpt-5.2 [url]=https://openrouter.ai/api/v1/chat/completions [apikey]=your_real_openrouter_key_here [!TIP] Formatting Matters: Ensure there are no spaces around the = sign in the config file. Also, keep your [apikey] secure and never commit it to a public repository. 4. Execution Run the following command in your terminal from the project root: Windows / Linux / macOS: java -cp PCaE-1.0.jar org.pcae.verification.FSFGenerator --inputDir resources/dataset --model gpt-5.2 --maxRounds 3 --experimentName Demo_Run 5. Check Results All outputs will be generated in a folder named Demo_Run. FSF files: Functional specifications (Functional Scenario Forms) generated by the LLM. Verification Logs: Detailed TBFV proofs and consistency checks ensuring the code matches the FSF. 💻 Development & IDE Setup If you prefer to run or modify the code using IntelliJ IDEA: 1. Project Initialization Open the PCaE folder as a Maven project. Maven will automatically resolve all dependencies defined in the pom.xml. 2. Configure Run Arguments To pass parameters to the FSFGenerator: Navigate to src/main/java/org/pcae/verification/FSFGenerator.java. Right-click and select Modify Run Configuration.... In the Program arguments box, enter your desired flags: --inputDir resources/dataset --model gpt-5.2 --maxRounds 3 --experimentName IDE_Test 3. Build from Source (Optional) If you have modified the source code and want to package your own executable JAR: mvn clean package -DskipTests

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average