Skip to content

Commit e263e3c

Browse files
committed
release 32.0.1
1 parent 36734f5 commit e263e3c

156 files changed

Lines changed: 1549 additions & 3723 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

ACSL-by-Example.pdf

43.9 KB
Binary file not shown.

CHANGES.md

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -7,54 +7,26 @@ provided in `README.md`.
77

88
---
99

10-
## Version 32.0.0
10+
## Version 32.0.1
1111
(Targeting Frama-C 32.0 “Germanium”)
1212

1313
### Improvements
1414

15-
- **Adaptation to Frama-C/WP evolution**
16-
The specifications and accompanying Coq proofs have been revised to reflect
17-
changes in the WP plugin and its generated proof obligations.
15+
- Added `terminates` and `exits` clauses to all function contracts.
1816

19-
- **Renamed and clarified logical concepts**
20-
The logic predicate `RemovePartition` has been renamed to
21-
`IndexOfNotEqual`. The corresponding specifications, implementations
22-
(`remove`, `remove_copy3`), and tutorial text have been updated accordingly.
17+
- Completed the `assigns` clauses of `stackinit` and `axiomsizeofinit`
18+
with explicit `\from` dependencies, clarifying the origin of assigned
19+
values and aligning the contracts with WP’s pedantic assigns checks.
2320

24-
- **Additional supporting lemmas**
25-
New lemmas have been introduced to improve proof automation and robustness,
26-
in particular:
27-
- `AccumulateNext`
28-
- `InnerProductInit`
29-
- `InnerProductNext`
21+
- Replaced statement contracts in `pop_heap`, `partial_sort`,
22+
`selection_sort`, `insertion_sort`, and `merge` by assertions referring to
23+
an explicit ghost label, thereby making the proof obligations local to
24+
the respective loop bodies.
3025

31-
- **Tutorial cleanup**
32-
Obsolete references to `count2` have been removed from the report.
26+
- Improved the description of non-mutating algorithms; removed `count2`
27+
and the inductively defined logic function `CountInd`.
3328

34-
- **Build system fixes**
35-
Minor corrections and cleanups have been applied to the Makefiles to ensure
36-
consistent verification runs with the current toolchain.
37-
38-
---
39-
40-
### Open issues
41-
42-
The following issues are known and mainly stem from changes in the behavior or
43-
diagnostics of Frama-C/WP. They do not affect the correctness of the examples
44-
but may result in warnings during verification.
45-
46-
- **Missing explicit `terminates` / `exits` clauses**
47-
Some function contracts omit explicit `terminates` and/or `exits` clauses.
48-
WP therefore inserts default clauses, which may lead to warnings.
49-
50-
- **Pedantic assigns warnings**
51-
In a few cases, WP reports `wp:pedantic-assigns` warnings where the `assigns`
52-
clause is missing or weaker than the implementation.
53-
54-
- **Ignored statement-level specifications**
55-
Certain statement contracts are currently ignored by WP and trigger
56-
informational warnings.
57-
58-
These issues are expected to be addressed in future revisions of
59-
*ACSL by Example*.
29+
- Improved the description of minimum and maximum algorithms.
6030

31+
- Improved the description of binary search algorithms and removed
32+
`binary_search2`.

LICENSE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2020 Jens Gerlach
3+
Copyright (c) 2020-2026 Fraunhofer FOKUS
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal
@@ -19,3 +19,4 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1919
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2020
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2121
SOFTWARE.
22+

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# ACSL by Example
33

4-
This repository contains version 32.0.0 of
4+
This repository contains version 32.0.1 of
55
[ACSL by Example](https://github.com/fraunhoferfokus/acsl-by-example/blob/master/ACSL-by-Example.pdf)
66
--- a curated collection of C functions and data types whose behavior has been
77
formally specified using **ACSL** (ANSI/ISO C Specification Language) and

StandardAlgorithms/Logic/ArrayBounds.acsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#ifndef ARRAYBOUNDS_ACSL_INCLUDED
33
#define ARRAYBOUNDS_ACSL_INCLUDED
44

5-
#include "typedefs.h"
5+
#include "LessThanComparable.acsl"
66

77
/*@
88
axiomatic ArrayBounds
File renamed without changes.

StandardAlgorithms/Logic/CountInd.acsl

Lines changed: 0 additions & 27 deletions
This file was deleted.

StandardAlgorithms/Logic/CountIndImplicit.acsl

Lines changed: 0 additions & 36 deletions
This file was deleted.

StandardAlgorithms/Logic/CountIndLemmas.acsl

Lines changed: 0 additions & 29 deletions
This file was deleted.

StandardAlgorithms/Logic/Find.acsl

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,6 @@
5757
m <= k <= n ==>
5858
Find(a, m, k, v) <= Find(a, m, n, v);
5959

60-
lemma Find_Extend:
61-
\forall value_type *a, v, integer k, m, n;
62-
m <= k < n ==>
63-
a[k] == v ==>
64-
Find(a, m, k, v) == k-m ==>
65-
Find(a, m, n, v) == k-m;
66-
6760
lemma Find_Limit:
6861
\forall value_type *a, v, integer k, m, n;
6962
m <= k < n ==>

0 commit comments

Comments
 (0)