Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
ProofScriptParser
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
24
Issues
24
List
Boards
Labels
Service Desk
Milestones
Merge Requests
4
Merge Requests
4
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sarah.grebing
ProofScriptParser
Commits
126a35d7
Commit
126a35d7
authored
Sep 13, 2017
by
Sarah Grebing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Changes to jars and commented exceptions
parent
0597ba77
Pipeline
#13603
failed with stage
in 2 minutes and 19 seconds
Changes
27
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
27 changed files
with
2432 additions
and
2824 deletions
+2432
-2824
keydeps/README
keydeps/README
+1
-1
keydeps/README.user
keydeps/README.user
+1
-1
keydeps/local-repo/key-project-psdbg/key.core/2.7-SNAPSHOT/key.core-2.7-SNAPSHOT.jar
...ect-psdbg/key.core/2.7-SNAPSHOT/key.core-2.7-SNAPSHOT.jar
+0
-0
keydeps/local-repo/key-project-psdbg/key.core/2.7-SNAPSHOT/maven-metadata-local.xml
...ject-psdbg/key.core/2.7-SNAPSHOT/maven-metadata-local.xml
+3
-3
keydeps/local-repo/key-project-psdbg/key.core/maven-metadata-local.xml
...-repo/key-project-psdbg/key.core/maven-metadata-local.xml
+1
-1
keydeps/local-repo/key-project-psdbg/key.ui/2.7-SNAPSHOT/key.ui-2.7-SNAPSHOT.jar
...project-psdbg/key.ui/2.7-SNAPSHOT/key.ui-2.7-SNAPSHOT.jar
+0
-0
keydeps/local-repo/key-project-psdbg/key.ui/2.7-SNAPSHOT/maven-metadata-local.xml
...roject-psdbg/key.ui/2.7-SNAPSHOT/maven-metadata-local.xml
+3
-3
keydeps/local-repo/key-project-psdbg/key.ui/maven-metadata-local.xml
...al-repo/key-project-psdbg/key.ui/maven-metadata-local.xml
+1
-1
keydeps/local-repo/key-project-psdbg/key.util/2.7-SNAPSHOT/key.util-2.7-SNAPSHOT.jar
...ect-psdbg/key.util/2.7-SNAPSHOT/key.util-2.7-SNAPSHOT.jar
+0
-0
keydeps/local-repo/key-project-psdbg/key.util/2.7-SNAPSHOT/maven-metadata-local.xml
...ject-psdbg/key.util/2.7-SNAPSHOT/maven-metadata-local.xml
+3
-3
keydeps/local-repo/key-project-psdbg/key.util/maven-metadata-local.xml
...-repo/key-project-psdbg/key.util/maven-metadata-local.xml
+1
-1
keydeps/local-repo/key-project-psdbg/recoder/maven-metadata-local.xml
...l-repo/key-project-psdbg/recoder/maven-metadata-local.xml
+1
-1
keydeps/src/main/java/GenDoc.java
keydeps/src/main/java/GenDoc.java
+20
-2
lang/src/main/antlr4/edu/kit/iti/formal/psdbg/parser/ScriptLanguage.g4
.../antlr4/edu/kit/iti/formal/psdbg/parser/ScriptLanguage.g4
+2
-2
lang/src/main/java/edu/kit/iti/formal/psdbg/parser/types/TermType.java
.../java/edu/kit/iti/formal/psdbg/parser/types/TermType.java
+5
-0
matcher/src/main/antlr4/edu/kit/formal/psdb/termmatcher/MatchPattern.g4
...in/antlr4/edu/kit/formal/psdb/termmatcher/MatchPattern.g4
+3
-1
matcher/src/main/java/edu/kit/iti/formal/psdbg/termmatcher/Utils.java
...main/java/edu/kit/iti/formal/psdbg/termmatcher/Utils.java
+2
-0
rt-key/src/main/java/edu/kit/iti/formal/psdbg/interpreter/KeYMatcher.java
...java/edu/kit/iti/formal/psdbg/interpreter/KeYMatcher.java
+43
-37
rt-key/src/main/java/edu/kit/iti/formal/psdbg/interpreter/data/SortType.java
...a/edu/kit/iti/formal/psdbg/interpreter/data/SortType.java
+17
-0
rt-key/src/main/resources/edu/kit/iti/formal/psdbg/taclets.properties.xml
...resources/edu/kit/iti/formal/psdbg/taclets.properties.xml
+67
-185
rt-key/src/test/java/edu/kit/iti/formal/psdbg/interpreter/ExecuteTest.java
...ava/edu/kit/iti/formal/psdbg/interpreter/ExecuteTest.java
+6
-1
rt-key/src/test/resources/edu/kit/iti/formal/psdbg/interpreter/contraposition/cutTest.kps
...t/iti/formal/psdbg/interpreter/contraposition/cutTest.kps
+3
-7
ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/ANTLR4LexerHighlighter.java
...iti/formal/psdbg/gui/controls/ANTLR4LexerHighlighter.java
+1
-1
ui/src/main/java/edu/kit/iti/formal/psdbg/gui/controls/Utils.java
...ain/java/edu/kit/iti/formal/psdbg/gui/controls/Utils.java
+0
-9
website/docs/commands.md
website/docs/commands.md
+24
-85
website/docs/macros.md
website/docs/macros.md
+0
-9
website/docs/taclets.md
website/docs/taclets.md
+2224
-2470
No files found.
keydeps/README
View file @
126a35d7
# Execute this in this folder.
# Set to key/key/deployment/components/
COMPONENTS=
~/work/key/key/deployment/components/
COMPONENTS=
${COMPONENTS:-~/work/key/key/deployment/components/}
mvn install:install-file -Dfile=$COMPONENTS/key.core.jar \
...
...
keydeps/README.user
View file @
126a35d7
# Execute this in this folder.
# Set to key/key/deployment/components/
COMPONENTS=
~/work/key/key/deployment/components/
COMPONENTS=
${COMPONENTS:-~/work/key/key/deployment/components/}
mvn install:install-file -Dfile=$COMPONENTS/key.core.jar \
...
...
keydeps/local-repo/key-project-psdbg/key.core/2.7-SNAPSHOT/key.core-2.7-SNAPSHOT.jar
View file @
126a35d7
No preview for this file type
keydeps/local-repo/key-project-psdbg/key.core/2.7-SNAPSHOT/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -7,17 +7,17 @@
<snapshot>
<localCopy>
true
</localCopy>
</snapshot>
<lastUpdated>
20170911152346
</lastUpdated>
<lastUpdated>
20170912105152
</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>
jar
</extension>
<value>
2.7-SNAPSHOT
</value>
<updated>
20170911152346
</updated>
<updated>
20170912105152
</updated>
</snapshotVersion>
<snapshotVersion>
<extension>
pom
</extension>
<value>
2.7-SNAPSHOT
</value>
<updated>
20170911152346
</updated>
<updated>
20170912103022
</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
...
...
keydeps/local-repo/key-project-psdbg/key.core/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -6,6 +6,6 @@
<versions>
<version>
2.7-SNAPSHOT
</version>
</versions>
<lastUpdated>
20170911152346
</lastUpdated>
<lastUpdated>
20170912105152
</lastUpdated>
</versioning>
</metadata>
keydeps/local-repo/key-project-psdbg/key.ui/2.7-SNAPSHOT/key.ui-2.7-SNAPSHOT.jar
View file @
126a35d7
No preview for this file type
keydeps/local-repo/key-project-psdbg/key.ui/2.7-SNAPSHOT/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -7,17 +7,17 @@
<snapshot>
<localCopy>
true
</localCopy>
</snapshot>
<lastUpdated>
20170911152349
</lastUpdated>
<lastUpdated>
20170912105155
</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>
jar
</extension>
<value>
2.7-SNAPSHOT
</value>
<updated>
20170911152349
</updated>
<updated>
20170912105155
</updated>
</snapshotVersion>
<snapshotVersion>
<extension>
pom
</extension>
<value>
2.7-SNAPSHOT
</value>
<updated>
20170911152349
</updated>
<updated>
20170912103024
</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
...
...
keydeps/local-repo/key-project-psdbg/key.ui/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -6,6 +6,6 @@
<versions>
<version>
2.7-SNAPSHOT
</version>
</versions>
<lastUpdated>
20170911152349
</lastUpdated>
<lastUpdated>
20170912105155
</lastUpdated>
</versioning>
</metadata>
keydeps/local-repo/key-project-psdbg/key.util/2.7-SNAPSHOT/key.util-2.7-SNAPSHOT.jar
View file @
126a35d7
No preview for this file type
keydeps/local-repo/key-project-psdbg/key.util/2.7-SNAPSHOT/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -7,17 +7,17 @@
<snapshot>
<localCopy>
true
</localCopy>
</snapshot>
<lastUpdated>
20170911152351
</lastUpdated>
<lastUpdated>
20170912105158
</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>
jar
</extension>
<value>
2.7-SNAPSHOT
</value>
<updated>
20170911152351
</updated>
<updated>
20170912105158
</updated>
</snapshotVersion>
<snapshotVersion>
<extension>
pom
</extension>
<value>
2.7-SNAPSHOT
</value>
<updated>
20170911152351
</updated>
<updated>
20170912103027
</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
...
...
keydeps/local-repo/key-project-psdbg/key.util/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -6,6 +6,6 @@
<versions>
<version>
2.7-SNAPSHOT
</version>
</versions>
<lastUpdated>
20170911152351
</lastUpdated>
<lastUpdated>
20170912105158
</lastUpdated>
</versioning>
</metadata>
keydeps/local-repo/key-project-psdbg/recoder/maven-metadata-local.xml
View file @
126a35d7
...
...
@@ -7,6 +7,6 @@
<versions>
<version>
2.7
</version>
</versions>
<lastUpdated>
20170911152354
</lastUpdated>
<lastUpdated>
20170912105201
</lastUpdated>
</versioning>
</metadata>
keydeps/src/main/java/GenDoc.java
View file @
126a35d7
...
...
@@ -19,6 +19,23 @@ import java.util.stream.Collectors;
* @version 1 (11.09.17)
*/
public
class
GenDoc
{
private
static
final
Set
<
String
>
FORBBIDEN
=
new
TreeSet
<>();
static
{
FORBBIDEN
.
add
(
"exit"
);
FORBBIDEN
.
add
(
"focus"
);
FORBBIDEN
.
add
(
"javascript"
);
FORBBIDEN
.
add
(
"leave"
);
FORBBIDEN
.
add
(
"let \n"
);
/*TODO
script
schemaVar
select
set
skip
*/
}
private
static
File
basedir
=
new
File
(
".."
);
private
static
File
propertiesFile
=
new
File
(
basedir
,
"rt-key/src/main/resources/edu/kit/iti/formal/psdbg/taclets.properties.xml"
);
private
static
File
dummyFile
=
new
File
(
basedir
,
"rt-key/src/test/resources/edu/kit/iti/formal/psdbg/interpreter/contraposition/contraposition.key"
);
...
...
@@ -58,7 +75,7 @@ public class GenDoc {
"\n\nCovering the *default* taclets of [KeY](http://key-project.org)."
);
for
(
Taclet
t
:
taclets
)
{
stream
.
write
(
"\n\n##
${t.displayName()}
\n\n"
);
stream
.
write
(
"\n\n##
"
+
t
.
displayName
()
+
"
\n\n"
);
stream
.
write
(
"```\n"
+
t
.
toString
()
+
"\n```"
);
}
...
...
@@ -143,7 +160,8 @@ public class GenDoc {
commands
.
sort
(
Comparator
.
comparing
(
ProofScriptCommand:
:
getName
));
for
(
ProofScriptCommand
t
:
commands
)
{
stream
.
write
(
helpForCommand
(
t
)
+
"\n\n"
);
if
(!
FORBBIDEN
.
contains
(
t
.
getName
()))
stream
.
write
(
helpForCommand
(
t
)
+
"\n\n"
);
}
stream
.
close
();
}
catch
(
IOException
e
)
{
...
...
lang/src/main/antlr4/edu/kit/iti/formal/psdbg/parser/ScriptLanguage.g4
View file @
126a35d7
...
...
@@ -69,8 +69,8 @@ expression
substExpressionList
:
(scriptVar '
/
' expression
(',' scriptVar '
/
' expression)*
(scriptVar '
\\
' expression
(',' scriptVar '
\\
' expression)*
)?
;
...
...
lang/src/main/java/edu/kit/iti/formal/psdbg/parser/types/TermType.java
View file @
126a35d7
...
...
@@ -5,6 +5,7 @@ import lombok.Data;
import
lombok.NoArgsConstructor
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
/**
...
...
@@ -17,6 +18,10 @@ import java.util.List;
public
class
TermType
implements
Type
{
private
List
<
Type
>
argTypes
=
new
ArrayList
<>();
public
TermType
(
Type
...
sortType
)
{
this
(
Arrays
.
asList
(
sortType
));
}
@Override
public
String
symbol
()
{
return
"Term<"
+
...
...
matcher/src/main/antlr4/edu/kit/formal/psdb/termmatcher/MatchPattern.g4
View file @
126a35d7
...
...
@@ -26,11 +26,12 @@ termPattern :
| <assoc=right> termPattern op=(DIV|MOD) termPattern #divMod
| termPattern op=(PLUS|MINUS) termPattern #plusMinus
| termPattern op=(LE|GE|LEQ|GEQ) termPattern #comparison
| termPattern op=(NEQ|EQ) termPattern
#equality
| termPattern op=(NEQ|EQ) termPattern #equality
| termPattern AND termPattern #and
| termPattern OR termPattern #or
| termPattern IMP termPattern #impl
| termPattern XOR termPattern #xor
// | termPattern EQUIV termPattern #equivalence
//| termPattern EQUIV termPattern already covered by EQ/NEQ
| MINUS termPattern #exprNegate
| NOT termPattern #exprNot
...
...
@@ -61,6 +62,7 @@ EQ : '=' ;
NEQ : '!=' ;
GEQ : '>=' ;
LEQ : '<=' ;
EQUIV : '<->';
GE : '>' ;
LE : '<' ;
AND : '&' ;
...
...
matcher/src/main/java/edu/kit/iti/formal/psdbg/termmatcher/Utils.java
View file @
126a35d7
...
...
@@ -12,10 +12,12 @@ public class Utils {
* @param formula
* @return parsable Stringversion of Term
*/
@Deprecated
public
static
String
toPrettyTerm
(
Term
formula
)
{
StringBuilder
sb
=
new
StringBuilder
();
Operator
op
=
formula
.
op
();
//ugly if/else
if
(
op
.
equals
(
Junctor
.
IMP
))
{
sb
.
append
(
"("
+
toPrettyTerm
(
formula
.
sub
(
0
))
+
") -> ("
+
toPrettyTerm
(
formula
.
sub
(
1
))
+
")"
);
...
...
rt-key/src/main/java/edu/kit/iti/formal/psdbg/interpreter/KeYMatcher.java
View file @
126a35d7
...
...
@@ -3,9 +3,9 @@ package edu.kit.iti.formal.psdbg.interpreter;
import
de.uka.ilkd.key.api.ScriptApi
;
import
de.uka.ilkd.key.api.VariableAssignments
;
import
de.uka.ilkd.key.logic.Name
;
import
de.uka.ilkd.key.logic.SequentFormula
;
import
de.uka.ilkd.key.logic.Term
;
import
de.uka.ilkd.key.logic.op.SchemaVariable
;
import
de.uka.ilkd.key.pp.LogicPrinter
;
import
de.uka.ilkd.key.proof.ApplyStrategy
;
import
de.uka.ilkd.key.proof.Goal
;
import
de.uka.ilkd.key.proof.Proof
;
...
...
@@ -15,9 +15,9 @@ import de.uka.ilkd.key.rule.Taclet;
import
de.uka.ilkd.key.rule.TacletApp
;
import
edu.kit.iti.formal.psdbg.interpreter.data.GoalNode
;
import
edu.kit.iti.formal.psdbg.interpreter.data.KeyData
;
import
edu.kit.iti.formal.psdbg.interpreter.data.SortType
;
import
edu.kit.iti.formal.psdbg.interpreter.data.VariableAssignment
;
import
edu.kit.iti.formal.psdbg.parser.ast.Signature
;
import
edu.kit.iti.formal.psdbg.parser.ast.TermLiteral
;
import
edu.kit.iti.formal.psdbg.parser.ast.Variable
;
import
edu.kit.iti.formal.psdbg.parser.data.Value
;
import
edu.kit.iti.formal.psdbg.parser.types.SimpleType
;
...
...
@@ -25,7 +25,6 @@ import edu.kit.iti.formal.psdbg.parser.types.TermType;
import
edu.kit.iti.formal.psdbg.parser.types.Type
;
import
edu.kit.iti.formal.psdbg.termmatcher.MatcherFacade
;
import
edu.kit.iti.formal.psdbg.termmatcher.Matchings
;
import
edu.kit.iti.formal.psdbg.termmatcher.Utils
;
import
edu.kit.iti.formal.psdbg.termmatcher.mp.MatchPath
;
import
org.key_project.util.collection.ImmutableList
;
...
...
@@ -197,13 +196,46 @@ public class KeYMatcher implements MatcherApi<KeyData> {
// System.out.println("Matched " + keyMatchResult.size() + " goals from " + currentState.toString() + " with pattern " + term);
List
<
VariableAssignment
>
transformedMatchResults
=
new
ArrayList
<>();
for
(
VariableAssignments
mResult
:
keyMatchResult
)
{
transformedMatchResults
.
add
(
from
(
mResult
));
transformedMatchResults
.
add
(
from
(
mResult
,
currentState
.
getData
()
));
}
//keyMatchResult.forEach(r -> transformedMatchResults.add(from(r)));
return
transformedMatchResults
;
}
/**
* Transforms a KeY Variable Assignment into an assignment for the interpreter
*
* @param keyAssignments
* @param currentState
* @return
*/
public
VariableAssignment
from
(
VariableAssignments
keyAssignments
,
KeyData
currentState
)
{
VariableAssignment
interpreterAssignments
=
new
VariableAssignment
(
null
);
Map
<
String
,
VariableAssignments
.
VarType
>
keyTypeMap
=
keyAssignments
.
getTypeMap
();
keyTypeMap
.
entrySet
().
forEach
(
e
->
interpreterAssignments
.
declare
(
e
.
getKey
(),
interpreter
.
getTypeConversionBiMap
().
inverse
().
get
(
e
.
getValue
())));
keyTypeMap
.
keySet
().
forEach
(
k
->
{
try
{
interpreterAssignments
.
assign
(
k
,
toValueTerm
(
currentState
,
(
Term
)
keyAssignments
.
getVarValue
(
k
)));
//System.out.println(keyAssignments.getVarValue(k));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
});
return
interpreterAssignments
;
}
private
Value
<
String
>
toValueTerm
(
KeyData
currentState
,
Term
matched
)
{
String
reprTerm
=
LogicPrinter
.
quickPrintTerm
(
matched
,
currentState
.
getEnv
().
getServices
());
return
new
Value
<>(
new
TermType
(
new
SortType
(
matched
.
sort
())),
reprTerm
);
}
@Override
public
List
<
VariableAssignment
>
matchSeq
(
GoalNode
<
KeyData
>
currentState
,
String
data
,
Signature
sig
)
{
System
.
out
.
println
(
"State that will be matched "
+
currentState
.
getData
().
getNode
().
sequent
()
+
" with pattern "
+
data
);
...
...
@@ -225,9 +257,10 @@ public class KeYMatcher implements MatcherApi<KeyData> {
s
=
s
.
replaceFirst
(
"\\?"
,
""
);
}
va
.
declare
(
s
,
new
TermType
());
va
.
assign
(
s
,
Value
.
from
(
from
(
matched
)));
System
.
out
.
println
(
"Variable "
+
s
+
" : "
+
Value
.
from
(
from
(
matched
)));
Value
<
String
>
value
=
toValueTerm
(
currentState
.
getData
(),
matched
);
va
.
declare
(
s
,
value
.
getType
());
va
.
assign
(
s
,
value
);
System
.
out
.
println
(
"Variable "
+
s
+
" : "
+
value
);
}
}
List
<
VariableAssignment
>
retList
=
new
LinkedList
();
...
...
@@ -237,35 +270,8 @@ public class KeYMatcher implements MatcherApi<KeyData> {
}
}
/**
* Transforms a KeY Variable Assignment into an assignment for the interpreter
*
* @param keyAssignments
* @return
*/
public
VariableAssignment
from
(
VariableAssignments
keyAssignments
)
{
VariableAssignment
interpreterAssignments
=
new
VariableAssignment
(
null
);
Map
<
String
,
VariableAssignments
.
VarType
>
keyTypeMap
=
keyAssignments
.
getTypeMap
();
keyTypeMap
.
entrySet
().
forEach
(
e
->
interpreterAssignments
.
declare
(
e
.
getKey
(),
interpreter
.
getTypeConversionBiMap
().
inverse
().
get
(
e
.
getValue
())));
keyTypeMap
.
keySet
().
forEach
(
k
->
{
try
{
interpreterAssignments
.
assign
(
k
,
Value
.
from
(
from
((
Term
)
keyAssignments
.
getVarValue
(
k
))));
//System.out.println(keyAssignments.getVarValue(k));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
});
return
interpreterAssignments
;
}
private
TermLiteral
from
(
Term
t
)
{
//TODO rewrite operator
return
new
TermLiteral
(
Utils
.
toPrettyTerm
(
t
));
}
private
TermLiteral
from
(
SequentFormula
sf
)
{
return
new
TermLiteral
(
sf
.
toString
());
}
//
private TermLiteral from(SequentFormula sf) {
//
return new TermLiteral(sf.toString());
//
}
}
rt-key/src/main/java/edu/kit/iti/formal/psdbg/interpreter/data/SortType.java
0 → 100644
View file @
126a35d7
package
edu.kit.iti.formal.psdbg.interpreter.data
;
import
de.uka.ilkd.key.logic.sort.Sort
;
import
edu.kit.iti.formal.psdbg.parser.types.Type
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
@RequiredArgsConstructor
public
class
SortType
implements
Type
{
@Getter
private
final
Sort
sort
;
@Override
public
String
symbol
()
{
return
sort
.
toString
();
}
}
rt-key/src/main/resources/edu/kit/iti/formal/psdbg/taclets.properties.xml
View file @
126a35d7
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>
Generated on: Mon Sep 11 17:22:08
CEST 2017. Use gen
</comment>
<comment>
Generated on: Tue Sep 12 15:08:54
CEST 2017. Use gen
</comment>
<entry
key=
"wd_Logical_Op_Or"
>
wd_Logical_Op_Or {
\find(WD(or(a,b)))
\replacewith(or(or(and(WD(a),a),and(WD(b),b)),and(WD(a),WD(b))))
...
...
@@ -160,7 +160,7 @@ Choices: {}}</entry>
<entry
key=
"add_sub_elim_right"
>
add_sub_elim_right {
\find(add(i,neg(i)))
\replacewith(Z(0(#)))
\heuristics(simplify_int)
Choices: {}}
</entry>
<entry
key=
"leq_to_geq"
>
leq_to_geq {
\find(leq(i,i0))
...
...
@@ -529,11 +529,6 @@ Choices: {reach:on}}</entry>
\replacewith(or(exists{i (variable)}(and(WD(a),not(a))),all{i (variable)}(WD(a))))
\heuristics(simplify)
Choices: {wdOperator:D,wdChecks:on}}
</entry>
<entry
key=
"emptyIndexedLoopScope"
>
emptyIndexedLoopScope {
\find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {} ... }\] (post))
\replacewith(if-then-else(equals(#lhs,TRUE),#allmodal(post),#allmodal(post)))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"eqClose"
>
eqClose {
\find(equals(s,s))
\replacewith(true)
...
...
@@ -925,14 +920,6 @@ Choices: {}}</entry>
\replacewith(if-then-else(exists{intVar (variable)}(phi),b,c))
\heuristics(simplify)
Choices: {}}
</entry>
<entry
key=
"unlabeledContinueIndexedLoopScope"
>
unlabeledContinueIndexedLoopScope {
\find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {continue ;
#slist
}
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{#lhs=false;}\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"compound_assignment_op_shiftright"
>
compound_assignment_op_shiftright {
\find(#allmodal ( (modal operator))\[{ .. #v
>>
=#e; ... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ .. #v=(#typeof(#v))(#v
>>
(#e)); ... }\] (post))
...
...
@@ -1099,7 +1086,7 @@ Choices: {programRules:Java}}</entry>
<entry
key=
"less_base"
>
less_base {
\find(lt(i,i))
\replacewith(false)
\heuristics(simplify_int)
Choices: {}}
</entry>
<entry
key=
"wd_Heap_Memset"
>
wd_Heap_Memset {
\find(wd(memset(h,l,a)))
...
...
@@ -1381,6 +1368,11 @@ Choices: {programRules:Java}}</entry>
\replacewith(or(and(wellFormed(h),equals(x,null)),and(equals(boolean::select(h,x,java.lang.Object::
<
created
>
),TRUE),arrayStoreValid(o,x))))
\heuristics(simplify_enlarging)
Choices: {programRules:Java}}
</entry>
<entry
key=
"UNSOUND_ASSUME"
>
UNSOUND_ASSUME {
\add [b]==
>
[]
\heuristics(obsolete)
Choices: {debug:on}}
</entry>
<entry
key=
"createdInHeapWithAllFieldsEQ"
>
createdInHeapWithAllFieldsEQ {
\assumes ([equals(allFields(o),EQ)]==
>
[])
\find(createdInHeap(EQ,h))
...
...
@@ -1736,8 +1728,8 @@ Choices: {}}</entry>
<entry
key=
"methodCallSuper"
>
methodCallWithAssignmentSuper {
\find(#allmodal ( (modal operator))\[{ .. #lhs=super.#mn(#elist); ... }\] (post))
\varcond(\new(#v0 (program Variable), \typeof(#lhs (program LeftHandSide))))
\replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;method-call(super.#mn(#elist);)#lhs=#v0; ... }\] (post))
\heuristics(method_expand,
simplify_autoname)
\replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#lhs) #v0;method-call(super.#mn(#elist);)#lhs=#v0; ... }\] (post))
\heuristics(
simplify_autoname)
Choices: {programRules:Java}}
</entry>
<entry
key=
"wd_Numerical_Quant_Min"
>
wd_Numerical_Quant_Min {
\find(wd(min{j (variable)}(f,c)))
...
...
@@ -1844,15 +1836,6 @@ Choices: {integerSimplificationRules:full}}</entry>
\replacewith(update-application(elem-update(#loc (program Variable))(javaBitwiseNegation(#se)),#normalassign(post)))
\heuristics(executeIntegerAssignment)
Choices: {programRules:Java}}
</entry>
<entry
key=
"blockBreakLabeled"
>
blockBreakLabeled {
\find(#allmodal ( (modal operator))\[{ .. {break ;
#slist
}
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ .. break ;
... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"defOfSeqSwap"
>
defOfSeqSwap {
\find(seqSwap(s,iv,jv))
\varcond(\notFreeIn(uSub (variable), jv (int term)), \notFreeIn(uSub (variable), iv (int term)), \notFreeIn(uSub (variable), s (Seq term)))
...
...
@@ -1899,7 +1882,7 @@ Choices: {}}</entry>
Choices: {}}
</entry>
<entry
key=
"simplifyIfThenElse"
>
simplifyIfThenElseUpdate4 {
\find(if-then-else(phi,t,t))
\varcond(de.uka.ilkd.key.rule.conditions.SimplifyIfThenElseUpdateCondition@28bcfcad
, )
\varcond(de.uka.ilkd.key.rule.conditions.SimplifyIfThenElseUpdateCondition@59f4f0de
, )
\replacewith(result)
Choices: {}}
</entry>
...
...
@@ -1933,7 +1916,7 @@ Choices: {programRules:Java}}</entry>
<entry
key=
"square_nonneg"
>
square_nonneg {
\find(leq(Z(0(#)),mul(i0,i0)))
\replacewith(true)
\heuristics(simplify_int)
Choices: {}}
</entry>
<entry
key=
"distributeIntersection"
>
distributeIntersection {
\find(intersect(s1,union(s2,s3)))
...
...
@@ -2345,11 +2328,6 @@ Choices: {integerSimplificationRules:full}}</entry>
\replacewith([]==
>
[b])
\heuristics(beta)
Choices: {}}
</entry>
<entry
key=
"emptyReturnIndexedLoopScope"
>
emptyReturnIndexedLoopScope {
\find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {return ;#slist} ... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;return ; ... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"bsum_invert_index"
>
bsum_invert_index {
\find(bsum{uSub (variable)}(i0,i1,t))
\varcond(\notFreeIn(uSub1 (variable), t (int term)), \notFreeIn(uSub1 (variable), i1 (int term)), \notFreeIn(uSub1 (variable), i0 (int term)), \notFreeIn(uSub (variable), i1 (int term)), \notFreeIn(uSub (variable), i0 (int term)))
...
...
@@ -2411,13 +2389,13 @@ Choices: {integerSimplificationRules:full}}</entry>
\assumes ([]==
>
[lt(i,j)])
\find(==
>
equals(i,j))
\replacewith([]==
>
[leq(i,j)])
\heuristics(simplify_int)
Choices: {}}
</entry>
<entry
key=
"lt_to_leq_1"
>
lt_to_leq_1 {
\find(or(lt(i,j),equals(i,j)))
\replacewith(leq(i,j))
\heuristics(simplify_int)
Choices: {}}
</entry>
\replacewith(leq(i,j))
Choices: {}}
</entry>
<entry
key=
"translateJavaBitwiseOr"
>
translateJavaBitwiseOrLong {
\find(javaBitwiseOrLong(left,right))
\replacewith(orJlong(left,right))
...
...
@@ -3161,15 +3139,6 @@ Choices: {programRules:Java}}</entry>
\replacewith(false)
\heuristics(concrete)
Choices: {programRules:Java}}
</entry>
<entry
key=
"blockContinue"
>
blockContinue {
\find(#allmodal ( (modal operator))\[{ .. {continue ;
#slist
}
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ .. continue ;
... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"wellFormedStoreLocSetEQ"
>
wellFormedStoreLocSetEQ {
\assumes ([equals(store(h,o,f,x),EQ)]==
>
[])
\find(wellFormed(EQ))
...
...
@@ -3326,11 +3295,6 @@ Choices: {}}</entry>
\replacewith(#allmodal ( (modal operator))\[{ .. #unwind-loop(do#swhile ( #e ); ) ... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"blockLoopScopes"
>
blockLoopScopes {
\find(#allmodal ( (modal operator))\[{ .. {loop-scope(#lhs) {#slist}} ... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {#slist} ... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"wd_Logical_Op_Eqv"
>
wd_Logical_Op_Eqv {
\find(WD(equiv(a,b)))
\replacewith(and(WD(a),WD(b)))
...
...
@@ -3664,11 +3628,6 @@ Choices: {wdChecks:on}}</entry>
\replacewith(leq(i0,i))
Choices: {}}
</entry>
<entry
key=
"deleteMergePoint"
>
deleteMergePoint {
\find(#allmodal ( (modal operator))\[{ .. //@ merge_point (#lhs (program LeftHandSide)); ... }\] (post))
\replacewith(#allmodal(post))
\heuristics(merge_point, simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"selectOfStoreEQ"
>
selectOfStoreEQ {
\assumes ([equals(store(h,o,f,x),EQ)]==
>
[])
\find(beta::select(EQ,o2,f2))
...
...
@@ -3980,9 +3939,9 @@ Choices: {programRules:Java}}</entry>
Choices: {sequences:on}}
</entry>
<entry
key=
"leq_diff1_eq"
>
leq_diff1_eq {
\find(leq(i0,sub(i1,Z(1(#)))))
\replacewith(lt(i0,i1))
\heuristics(simplify_int)
Choices: {}}
</entry>
\replacewith(lt(i0,i1))
Choices: {}}
</entry>
<entry
key=
"diamond_and_left"
>
diamond_and_left {
\find(#diamond ( (modal operator))\[{ .. #s ... }\] (and(post,post1))==
>
)
\replacewith([and(#diamond ( (modal operator))\[{ .. #s ... }\] (post),#diamond ( (modal operator))\[{ .. #s ... }\] (post1))]==
>
[])
...
...
@@ -4030,15 +3989,6 @@ Choices: {}}</entry>
\replacewith(b)
\heuristics(elimQuantifier)
Choices: {}}
</entry>
<entry
key=
"labeledContinueIndexedLoopScope"
>
labeledContinueIndexedLoopScope {
\find(#allmodal ( (modal operator))\[{ .. loop-scope(#lhs) {continue ;
#slist
}
... }\] (post))
\replacewith(#allmodal ( (modal operator))\[{ .. #lhs=true;continue ;
... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"wd_F_Subst_Formula"
>
wd_F_Subst_Formula {
\find(F(subst{v (variable)}(u,f)))
\replacewith(and(wd(u),subst{v (variable)}(u,F(f))))
...
...
@@ -4172,16 +4122,6 @@ Choices: {}}</entry>
\add [all{iv (variable)}(imp(and(leq(Z(0(#)),iv),lt(iv,seqLen(s))),and(and(leq(Z(0(#)),int::seqGet(s,iv)),lt(int::seqGet(s,iv),seqLen(s))),equals(int::instance(any::seqGet(s,iv)),TRUE))))]==
>
[]
Choices: {moreSeqRules:on,sequences:on}}
</entry>
<entry
key=
"blockContinueNoMatch"
>
blockContinueNoMatch {
\find(#allmodal ( (modal operator))\[{ .. #lb1: {continue ;
#slist
}
... }\] (post))
\varcond(\different (#lb1 (program Label), #lb (program Label)), )
\replacewith(#allmodal ( (modal operator))\[{ .. continue ;
... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"returnPermission_empty"
>
returnPermission_empty {
\find(returnPermission(from,to,emptyPermission))
\replacewith(emptyPermission)
...
...
@@ -4687,6 +4627,10 @@ Choices: {programRules:Java}}</entry>
\replacewith(#allmodal ( (modal operator))\[{ .. #typeof(#e0) #v = #e0;#v.#attribute=(#typeof(#attribute))(#v.#attribute
&
#e); ... }\] (post))
\heuristics(simplify_prog)
Choices: {programRules:Java}}
</entry>
<entry
key=
"FAKE_CLOSE"
>
FAKE_CLOSE {
\closegoal\heuristics(obsolete)
Choices: {debug:on}}
</entry>
<entry
key=
"writePermissionAfterReturn"
>
writePermissionAfterReturn {
\assumes ([writePermissionObject(o1,p)]==
>
[])
\find(writePermissionObject(o2,returnPermission(o1,o2,p)))
...
...
@@ -4789,9 +4733,9 @@ Choices: {Strings:on}}</entry>
Choices: {programRules:Java}}
</entry>
<entry
key=
"i_minus_i_is_zero"
>
i_minus_i_is_zero {
\find(sub(i,i))