You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3c69f95
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ Binaries: `build/bin/cpp-verify`, `build/bin/clang++`, `build/bin/clangd`, and `
43
43
Z3 4.13.4 is built in: from the `third_party/z3` submodule, or, without it, cloned during the first build. See `third_party/README.md`. Two backends are optional and found on `PATH`:
44
44
45
45
- cvc5, for `--backend=cvc5`, `portfolio`, and `race` (tested with 1.1.2): `apt install cvc5` on Ubuntu 24.04, or a [cvc5 release](https://github.com/cvc5/cvc5/releases/tag/cvc5-1.1.2) for Linux, macOS, or Windows; `--cvc5-path` names another executable.
46
-
- Lean 4, for `--lean-certify` and `--lean-fallback`: install [elan](https://github.com/leanprover/elan); generated projects pin `leanprover/lean4:v4.32.2`.
46
+
- Lean 4, for `--lean-certify` and `--lean-fallback`: install [elan](https://github.com/leanprover/elan); generated projects pin `leanprover/lean4:v4.35.0`.
47
47
48
48
`cpp-verify --version` shows the cpp-verify release, the LLVM release it is built on, and the Z3, cvc5, and Lean versions it uses.
// MOVED: warning: the Lean project {{.*}}.project pinned leanprover/lean4:v4.32.2, which an earlier release of cpp-verify wrote; it now pins leanprover/lean4:v4.35.0, so a proof that no longer builds needs updating for that Lean
Copy file name to clipboardExpand all lines: docs/ARCHITECTURE.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1662,6 +1662,16 @@ The driver selects a backend via `VerifyOptions` (`Verifier.h` / `cpp-verify --b
1662
1662
|**BMC**|`LoopUnroll` on VCR, then shared obligation/Z3 path | Source verification grows bounds from zero through `--unroll=N`, stopping on a counterexample, complete unwinding, unresolved query, or the maximum frontier. Safety with failed unwinding is `BoundedSafe(N)`; only proved unwinding is `Verified`. A spec's checks have no loops: the driver solves them with a Z3 backend (`SpecBackend`), as on the default path, and keeps the bound on their archived modules for replay. |
1663
1663
|**Lean**|`exportLeanScratchPad` / project certification | Standalone mode emits unchecked theorem stubs. Project mode emits direct source goals, total functional heaps, typed bit-vector/integer operations, and compact finite-fuel spec bodies into generated files while preserving user proofs. Export is `Exported`; only the pinned admission-free kernel/axiom check is `Certified`. Collections are `logic.unsupported` (planned for a future release). |
1664
1664
1665
+
A Lean project pins `LeanToolchain` (`Driver/CppVerifyVersion.h`) in its
1666
+
`lean-toolchain` file. A pin in `EarlierLeanToolchains`, which an earlier
1667
+
release wrote, is rewritten to the current one with a warning; any other pin is
1668
+
an error, since the generated semantics are written for one Lean. elan picks a
1669
+
toolchain by the working directory, not by `--dir`, so through elan's proxy
1670
+
every certification step names the pin (`lake +leanprover/lean4:v4.35.0
1671
+
--dir=DIR ...`). Certification first asks `lake --version`, alone, since lake
1672
+
takes it alone, and refuses a `lake` that reports another Lean. Before 0.2,
1673
+
certification ran elan's default toolchain.
1674
+
1665
1675
Each backend declares supported `LogicFeature`s. Central dispatch rejects a
1666
1676
module requiring an unavailable feature before backend execution. Spec
1667
1677
inlining runs before passivization: `SpecInliner::prepareFunctionAxiomatic`
@@ -2034,7 +2044,7 @@ stops before VCR conversion.
2034
2044
`CPPVERIFY_PARITY_ARCHIVES` it also compares encodings per archived obligation.
0 commit comments