ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
ld_verify.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4
5// ld_verify orchestrates the full pipeline:
6// PLCopen XML → Parser → TypeChecker → LdIRBuilder → ld_converter
7// → property_encoder → ESBMC engine → JSON report
8//
9// This class is used by the ld-verify CLI (tools/ld-verify).
11{
12 std::string program_path; // PLCopen XML or .ld input
13 std::string props_path; // YAML property file (optional)
14 std::string strategy; // "k-induction" | "bmc"
15 unsigned bmc_unwind = 100;
16 bool fault_injection = false;
17};
18
20{
29
31 std::string property_id;
32 std::string description;
33 std::string raw_output; // captured ESBMC output
34
35 // Serialise to JSON string
36 std::string to_json() const;
37};
38
40{
41public:
42 // Run the full pipeline. The context is owned by the caller.
44};
Definition ld_verify.h:40
LdVerifyResult run(const LdVerifyOptions &opts)
Definition ld_verify.cpp:201
Definition ld_verify.h:11
std::string strategy
Definition ld_verify.h:14
std::string props_path
Definition ld_verify.h:13
bool fault_injection
Definition ld_verify.h:16
std::string program_path
Definition ld_verify.h:12
unsigned bmc_unwind
Definition ld_verify.h:15
Definition ld_verify.h:20
std::string to_json() const
Definition ld_verify.cpp:66
std::string description
Definition ld_verify.h:32
Verdict
Definition ld_verify.h:22
@ Violation
Definition ld_verify.h:24
@ Incomplete
Definition ld_verify.h:26
@ Unknown
Definition ld_verify.h:25
@ Error
Definition ld_verify.h:27
@ Safe
Definition ld_verify.h:23
std::string property_id
Definition ld_verify.h:31
std::string raw_output
Definition ld_verify.h:33
Verdict verdict
Definition ld_verify.h:30