Skip to content

Commit 55a505a

Browse files
committed
wip
1 parent 4073d8c commit 55a505a

File tree

50 files changed

+1125
-625
lines changed

Some content is hidden

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

50 files changed

+1125
-625
lines changed

key.core/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ dependencies {
1919

2020
antlr4 "org.antlr:antlr4:4.13.2"
2121
api "org.antlr:antlr4-runtime:4.13.2"
22+
23+
compileOnly "com.google.auto.service:auto-service:1.1.1"
2224
}
2325

2426
// The target directory for JavaCC (parser generation)

key.core/src/main/java/de/uka/ilkd/key/strategy/feature/FocusIsSubFormulaOfInfFlowContractAppFeature.java renamed to key.core/src/main/java/de/uka/ilkd/key/informationflow/FocusIsSubFormulaOfInfFlowContractAppFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* This file is part of KeY - https://key-project.org
22
* KeY is licensed under the GNU General Public License Version 2
33
* SPDX-License-Identifier: GPL-2.0-only */
4-
package de.uka.ilkd.key.strategy.feature;
4+
package de.uka.ilkd.key.informationflow;
55

66
import de.uka.ilkd.key.informationflow.rule.executor.InfFlowContractAppTacletExecutor;
77
import de.uka.ilkd.key.logic.DefaultVisitor;

key.core/src/main/java/de/uka/ilkd/key/strategy/feature/InfFlowContractAppFeature.java renamed to key.core/src/main/java/de/uka/ilkd/key/informationflow/InfFlowContractAppFeature.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* This file is part of KeY - https://key-project.org
22
* KeY is licensed under the GNU General Public License Version 2
33
* SPDX-License-Identifier: GPL-2.0-only */
4-
package de.uka.ilkd.key.strategy.feature;
4+
package de.uka.ilkd.key.informationflow;
55

66
import java.util.ArrayList;
77
import java.util.Iterator;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* This file is part of KeY - https://key-project.org
2+
* KeY is licensed under the GNU General Public License Version 2
3+
* SPDX-License-Identifier: GPL-2.0-only */
4+
package de.uka.ilkd.key.informationflow;
5+
6+
import de.uka.ilkd.key.proof.init.DefaultProfileResolver;
7+
import de.uka.ilkd.key.proof.init.Profile;
8+
9+
public class InfFlowProfileResolver implements DefaultProfileResolver {
10+
@Override
11+
public String getProfileName() {
12+
return "java-infflow";
13+
}
14+
15+
@Override
16+
public Profile getDefaultProfile() {
17+
return new JavaInfFlowProfile();
18+
}
19+
}

key.core/src/main/java/de/uka/ilkd/key/speclang/InformationFlowContract.java renamed to key.core/src/main/java/de/uka/ilkd/key/informationflow/InformationFlowContract.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/* This file is part of KeY - https://key-project.org
22
* KeY is licensed under the GNU General Public License Version 2
33
* SPDX-License-Identifier: GPL-2.0-only */
4-
package de.uka.ilkd.key.speclang;
4+
package de.uka.ilkd.key.informationflow;
55

66
import java.util.function.UnaryOperator;
77

@@ -11,6 +11,7 @@
1111
import de.uka.ilkd.key.logic.op.IObserverFunction;
1212
import de.uka.ilkd.key.logic.op.IProgramMethod;
1313
import de.uka.ilkd.key.logic.op.JModality;
14+
import de.uka.ilkd.key.speclang.Contract;
1415
import de.uka.ilkd.key.util.InfFlowSpec;
1516

1617
import org.key_project.util.collection.ImmutableList;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
/* This file is part of KeY - https://key-project.org
2+
* KeY is licensed under the GNU General Public License Version 2
3+
* SPDX-License-Identifier: GPL-2.0-only */
4+
package de.uka.ilkd.key.informationflow;
5+
6+
import de.uka.ilkd.key.informationflow.rule.InfFlowBlockContractInternalRule;
7+
import de.uka.ilkd.key.proof.init.JavaProfile;
8+
import de.uka.ilkd.key.rule.*;
9+
10+
import org.key_project.util.collection.ImmutableList;
11+
12+
/**
13+
* This profile sets up KeY for verification of JavaCard programs.
14+
*/
15+
public class JavaInfFlowProfile extends JavaProfile {
16+
public static final String NAME = "Java InfFlow Profile";
17+
18+
@Override
19+
protected ImmutableList<BuiltInRule> initBuiltInRules() {
20+
var rules = super.initBuiltInRules();
21+
return rules.map(it -> {
22+
if (it == BlockContractInternalRule.INSTANCE) {
23+
return InfFlowBlockContractInternalRule.INSTANCE;
24+
}
25+
return it;
26+
});
27+
}
28+
}

key.core/src/main/java/de/uka/ilkd/key/speclang/InformationFlowContractImpl.java renamed to key.core/src/main/java/de/uka/ilkd/key/informationflow/impl/InformationFlowContractImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
/* This file is part of KeY - https://key-project.org
22
* KeY is licensed under the GNU General Public License Version 2
33
* SPDX-License-Identifier: GPL-2.0-only */
4-
package de.uka.ilkd.key.speclang;
4+
package de.uka.ilkd.key.informationflow.impl;
55

66
import java.util.Iterator;
77
import java.util.List;
88
import java.util.Map;
99
import java.util.function.UnaryOperator;
1010

11+
import de.uka.ilkd.key.informationflow.InformationFlowContract;
1112
import de.uka.ilkd.key.informationflow.po.InfFlowContractPO;
1213
import de.uka.ilkd.key.java.Services;
1314
import de.uka.ilkd.key.java.abstraction.KeYJavaType;
@@ -21,6 +22,8 @@
2122
import de.uka.ilkd.key.proof.init.ContractPO;
2223
import de.uka.ilkd.key.proof.init.InitConfig;
2324
import de.uka.ilkd.key.proof.init.ProofOblInput;
25+
import de.uka.ilkd.key.speclang.Contract;
26+
import de.uka.ilkd.key.speclang.ContractFactory;
2427
import de.uka.ilkd.key.util.InfFlowSpec;
2528

2629
import org.key_project.util.collection.ImmutableList;

key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/AbstractFinishAuxiliaryComputationMacro.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
*
3333
* @author christoph
3434
*/
35-
public abstract class AbstractFinishAuxiliaryComputationMacro extends AbstractProofMacro {
35+
abstract class AbstractFinishAuxiliaryComputationMacro extends AbstractProofMacro {
3636

3737
@Override
3838
public String getName() {

key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/FinishAuxiliaryMethodComputationMacro.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package de.uka.ilkd.key.informationflow.macros;
55

66
import de.uka.ilkd.key.control.UserInterfaceControl;
7+
import de.uka.ilkd.key.informationflow.InformationFlowContract;
78
import de.uka.ilkd.key.informationflow.po.IFProofObligationVars;
89
import de.uka.ilkd.key.informationflow.po.InfFlowContractPO;
910
import de.uka.ilkd.key.informationflow.po.SymbolicExecutionPO;
@@ -17,7 +18,6 @@
1718
import de.uka.ilkd.key.proof.init.ProofOblInput;
1819
import de.uka.ilkd.key.rule.Taclet;
1920
import de.uka.ilkd.key.rule.inst.SVInstantiations;
20-
import de.uka.ilkd.key.speclang.InformationFlowContract;
2121

2222
import org.key_project.prover.engine.ProverTaskListener;
2323
import org.key_project.prover.sequent.PosInOccurrence;

key.core/src/main/java/de/uka/ilkd/key/informationflow/macros/FullInformationFlowAutoPilotMacro.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ protected ProofMacro[] createProofMacroArray() {
8787
public String getDescription() { return "Anonymous Macro"; }
8888
};
8989

90-
final AlternativeMacro alternativesMacro = new AlternativeMacro() {
90+
return new AlternativeMacro() {
9191
@Override
9292
public String getName() { return ""; }
9393

@@ -103,8 +103,6 @@ protected ProofMacro[] createProofMacroArray() {
103103
finishMainCompMacro };
104104
}
105105
};
106-
107-
return alternativesMacro;
108106
}
109107

110108
@Override

0 commit comments

Comments
 (0)