Skip to content

Commit bb0e436

Browse files
committed
move Taclet options of WD from key.core to key.core.wd
closes #3740
1 parent bc01924 commit bb0e436

2 files changed

Lines changed: 45 additions & 41 deletions

File tree

key.core.wd/src/main/resources/de/uka/ilkd/key/proof/rules/wdHeader.key

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,51 @@
22
* KeY is licensed under the GNU General Public License Version 2
33
* SPDX-License-Identifier: GPL-2.0-only */
44

5+
\optionsDecl {
6+
/*!
7+
Treatment of formulas and terms for welldefinedness checks:
8+
*/
9+
wdOperator: {
10+
/*!
11+
More intuitive for software developers and along the lines of
12+
runtime assertion semantics. Well-Definedness checks will be
13+
stricter using this operator, since the order of terms/formulas
14+
matters. It is based on McCarthy logic.
15+
Cf. "Are the Logical Foundations of Verifying Compiler
16+
Prototypes Matching User Expectations?" by Patrice Chalin.
17+
18+
@choiceDefaultOption
19+
*/
20+
L,
21+
/*!
22+
Complete and along the lines of classical logic, where the
23+
order of terms/formulas is irrelevant. This operator is
24+
equivalent to the D-operator, but more efficient.
25+
Cf. "Efficient Well-Definedness Checking" by Ádám Darvas,
26+
Farhad Mehta, and Arsenii Rudich.
27+
*/
28+
Y,
29+
/*!
30+
Complete and along the lines of classical logic, where the
31+
order of terms/formulas is irrelevant. This operator is not as
32+
strict as the L-operator, based on strong Kleene logic. To be
33+
used with care, since formulas may blow up exponentially.
34+
Cf. "Well Defined B" by Patrick Behm, Lilian Burdy, and
35+
Jean-Marc Meynadier*/
36+
D
37+
};
38+
39+
/*!
40+
Welldefinedness checks of JML specifications can be turned on/off.
41+
This includes class invariants, operation contracts, model fields
42+
as well as JML (annotation) statements as loop invariants and
43+
block contracts. The former ones are checked "on-the-fly", i.e.,
44+
directly when they are applied in the code while proving an operation
45+
contract, since the context is needed.
46+
*/
47+
wdChecks: {off, on};
48+
}
49+
550
\transformers {
651
\formula wd(any);
752
\formula WD(\formula);

key.core/src/main/resources/de/uka/ilkd/key/proof/rules/optionsDeclarations.key

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -160,48 +160,7 @@
160160
integerSimplificationRules: {full, /*! @choiceIncomplete */ minimal}; // TODO: further refine this option
161161
permissions: {off, on};
162162

163-
/*!
164-
Treatment of formulas and terms for welldefinedness checks:
165-
*/
166-
wdOperator: {
167-
/*!
168-
More intuitive for software developers and along the lines of
169-
runtime assertion semantics. Well-Definedness checks will be
170-
stricter using this operator, since the order of terms/formulas
171-
matters. It is based on McCarthy logic.
172-
Cf. "Are the Logical Foundations of Verifying Compiler
173-
Prototypes Matching User Expectations?" by Patrice Chalin.
174-
175-
@choiceDefaultOption
176-
*/
177-
L,
178-
/*!
179-
Complete and along the lines of classical logic, where the
180-
order of terms/formulas is irrelevant. This operator is
181-
equivalent to the D-operator, but more efficient.
182-
Cf. "Efficient Well-Definedness Checking" by Ádám Darvas,
183-
Farhad Mehta, and Arsenii Rudich.
184-
*/
185-
Y,
186-
/*!
187-
Complete and along the lines of classical logic, where the
188-
order of terms/formulas is irrelevant. This operator is not as
189-
strict as the L-operator, based on strong Kleene logic. To be
190-
used with care, since formulas may blow up exponentially.
191-
Cf. "Well Defined B" by Patrick Behm, Lilian Burdy, and
192-
Jean-Marc Meynadier*/
193-
D
194-
};
195163

196-
/*!
197-
Welldefinedness checks of JML specifications can be turned on/off.
198-
This includes class invariants, operation contracts, model fields
199-
as well as JML (annotation) statements as loop invariants and
200-
block contracts. The former ones are checked "on-the-fly", i.e.,
201-
directly when they are applied in the code while proving an operation
202-
contract, since the context is needed.
203-
*/
204-
wdChecks: {off, on};
205164
/*!
206165
Specifies whether a special goal "Joined node is weakening" should be
207166
generated as a child of the partner node of a join operation.

0 commit comments

Comments
 (0)