From db4c5827577a1d9ed73ecac4fb11611adf2b857c Mon Sep 17 00:00:00 2001 From: Fynn Demmler Date: Thu, 11 Apr 2024 13:01:08 +0200 Subject: [PATCH] Removed old artifacts. --- BankAccountCorC/.classpath | 6 - BankAccountCorC/.project | 17 - .../src/Account/bankAccountUpdate.diagram | 1487 ----- .../BankAccount/Account/update.diagram | 1424 ----- ElevatorCorC/.classpath | 6 - .../Base/Elevator/continueInDirection.diagram | 2672 -------- ElevatorOO/features/Base/Floor/Floor.diagram | 1153 ---- EmailCorC/.classpath | 10 - EmailCorC/.project | 17 - .../src/Client/getClientByAdress.diagram | 1955 ------ EmailCorC/src/Client/getName.diagram | 1051 --- .../src/Client/getNameWithKeyword.diagram | 1051 --- .../.featureide/model.xml/model.xml.xml | 5 - .../IntList/provepush/Base/Statement3.key | 261 - .../IntList/provepush/Base/Statement4.key | 578 -- .../IntList/provepush/Base/Statement5.key | 472 -- .../IntList/provepush/BaseCons/Statement3.key | 261 - .../IntList/provepush/BaseCons/Statement4.key | 578 -- .../IntList/provepush/BaseCons/Statement5.key | 472 -- .../BaseConsSortedDecreasing/Statement3.key | 261 - .../BaseConsSortedDecreasing/Statement4.key | 578 -- .../BaseConsSortedDecreasing/Statement5.key | 472 -- .../BaseConsSortedIncreasing/Statement3.key | 261 - .../BaseConsSortedIncreasing/Statement4.key | 578 -- .../BaseConsSortedIncreasing/Statement5.key | 472 -- .../BaseSortedDecreasing/Statement3.key | 261 - .../BaseSortedDecreasing/Statement4.key | 578 -- .../BaseSortedDecreasing/Statement5.key | 472 -- .../BaseSortedIncreasing/Statement3.key | 261 - .../BaseSortedIncreasing/Statement4.key | 578 -- .../BaseSortedIncreasing/Statement5.key | 472 -- .../features/Base/diagram/Push.cbcmodel | 98 - .../features/Base/diagram/Push.diagram | 3759 ----------- .../features/Base/provePush/helper.key | 0 .../features/Base/provePush/prove0.key | 217 - .../features/Cons/diagram/Push.cbcmodel | 23 - .../features/Cons/diagram/Push.diagram | 430 -- .../features/Cons/provePush/helper.key | 0 .../features/Cons/provePush/prove0.key | 345 - .../features/Decreasing/diagram/Sort.cbcmodel | 123 - .../features/Decreasing/diagram/Sort.diagram | 2433 ------- .../features/Decreasing/proveSort/helper.key | 0 .../features/Decreasing/proveSort/prove0.key | 102 - .../features/Increasing/diagram/Sort.cbcmodel | 123 - .../features/Increasing/diagram/Sort.diagram | 5696 ----------------- .../features/Increasing/proveSort/helper.key | 0 .../features/Increasing/proveSort/prove0.key | 105 - .../features/Sorted/diagram/Push.cbcmodel | 40 - .../features/Sorted/diagram/Push.diagram | 754 --- .../features/Sorted/provePush/helper.key | 0 .../features/Sorted/provePush/prove0.key | 550 -- .../features/Sorted/provePush/prove1.key | 556 -- .../features/Variable/diagram/Varm.cbcmodel | 17 - .../features/Variable/diagram/Varm.diagram | 336 - IntegerList/src/IntList.java | 15 - .../src_gen/Generated_IntegerList.java | 45 - .../helper/GenerateClassFromInterfaces.java | 650 -- ...teCodeForVariationalVerification.java.orig | 466 -- .../tool/helper/GenerateDiagramFromModel.java | 224 - .../tool/helper/GenerateModelFromCode.java | 1292 ---- .../helper/GenerateModelFromCode.java.orig | 1378 ---- .../helper/GenerateModelWithoutContract.java | 710 -- .../isf/cbc/tool/helper/GetDiagramUtil.java | 88 - .../helper/UpdateConditionsOfChildren.java | 240 - .../UpdateModifiableOfConditions.java.orig | 534 -- .../cs/isf/cbc/tool/model/CbcModelUtil.java | 95 - .../tool/diagram/CbCClassImageProvider.class | Bin 847 -> 0 bytes .../bin/model/CbcClassUtil.class | Bin 5204 -> 0 bytes .../tool/diagram/CbCClassImageProvider.java | 22 - .../src/model/CbcClassUtil.java | 79 - .../cbcclass/model/cbcclass/Visibility.java | 252 - .../model/cbcclass/impl/ParameterImpl.java | 222 - .../cs/isf/cbc/statistics/DataCollector.java | 153 - .../tu_bs/cs/isf/cbc/statistics/RHelper.java | 158 - 74 files changed, 41050 deletions(-) delete mode 100644 BankAccountCorC/.classpath delete mode 100644 BankAccountCorC/.project delete mode 100644 BankAccountCorC/src/Account/bankAccountUpdate.diagram delete mode 100644 BankAccountOO/features/BankAccount/Account/update.diagram delete mode 100644 ElevatorCorC/.classpath delete mode 100644 ElevatorOO/features/Base/Elevator/continueInDirection.diagram delete mode 100644 ElevatorOO/features/Base/Floor/Floor.diagram delete mode 100644 EmailCorC/.classpath delete mode 100644 EmailCorC/.project delete mode 100644 EmailCorC/src/Client/getClientByAdress.diagram delete mode 100644 EmailCorC/src/Client/getName.diagram delete mode 100644 EmailCorC/src/Client/getNameWithKeyword.diagram delete mode 100644 IntegerList/.featureide/model.xml/model.xml.xml delete mode 100644 IntegerList/features/Base/IntList/provepush/Base/Statement3.key delete mode 100644 IntegerList/features/Base/IntList/provepush/Base/Statement4.key delete mode 100644 IntegerList/features/Base/IntList/provepush/Base/Statement5.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseCons/Statement3.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseCons/Statement4.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseCons/Statement5.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement3.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement4.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement5.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement3.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement4.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement5.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement3.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement4.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement5.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement3.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement4.key delete mode 100644 IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement5.key delete mode 100644 IntegerList/features/Base/diagram/Push.cbcmodel delete mode 100644 IntegerList/features/Base/diagram/Push.diagram delete mode 100644 IntegerList/features/Base/provePush/helper.key delete mode 100644 IntegerList/features/Base/provePush/prove0.key delete mode 100644 IntegerList/features/Cons/diagram/Push.cbcmodel delete mode 100644 IntegerList/features/Cons/diagram/Push.diagram delete mode 100644 IntegerList/features/Cons/provePush/helper.key delete mode 100644 IntegerList/features/Cons/provePush/prove0.key delete mode 100644 IntegerList/features/Decreasing/diagram/Sort.cbcmodel delete mode 100644 IntegerList/features/Decreasing/diagram/Sort.diagram delete mode 100644 IntegerList/features/Decreasing/proveSort/helper.key delete mode 100644 IntegerList/features/Decreasing/proveSort/prove0.key delete mode 100644 IntegerList/features/Increasing/diagram/Sort.cbcmodel delete mode 100644 IntegerList/features/Increasing/diagram/Sort.diagram delete mode 100644 IntegerList/features/Increasing/proveSort/helper.key delete mode 100644 IntegerList/features/Increasing/proveSort/prove0.key delete mode 100644 IntegerList/features/Sorted/diagram/Push.cbcmodel delete mode 100644 IntegerList/features/Sorted/diagram/Push.diagram delete mode 100644 IntegerList/features/Sorted/provePush/helper.key delete mode 100644 IntegerList/features/Sorted/provePush/prove0.key delete mode 100644 IntegerList/features/Sorted/provePush/prove1.key delete mode 100644 IntegerList/features/Variable/diagram/Varm.cbcmodel delete mode 100644 IntegerList/features/Variable/diagram/Varm.diagram delete mode 100644 IntegerList/src/IntList.java delete mode 100644 IntegerList/src_gen/Generated_IntegerList.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateClassFromInterfaces.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java.orig delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateDiagramFromModel.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java.orig delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelWithoutContract.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateConditionsOfChildren.java delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateModifiableOfConditions.java.orig delete mode 100644 de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/model/CbcModelUtil.java delete mode 100644 de.tu-bs.cs.isf.cbcclass.tool/bin/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.class delete mode 100644 de.tu-bs.cs.isf.cbcclass.tool/bin/model/CbcClassUtil.class delete mode 100644 de.tu-bs.cs.isf.cbcclass.tool/src/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.java delete mode 100644 de.tu-bs.cs.isf.cbcclass.tool/src/model/CbcClassUtil.java delete mode 100644 de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/Visibility.java delete mode 100644 de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/impl/ParameterImpl.java delete mode 100644 de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/DataCollector.java delete mode 100644 de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/RHelper.java diff --git a/BankAccountCorC/.classpath b/BankAccountCorC/.classpath deleted file mode 100644 index 51a8bbad8..000000000 --- a/BankAccountCorC/.classpath +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/BankAccountCorC/.project b/BankAccountCorC/.project deleted file mode 100644 index 1138b366d..000000000 --- a/BankAccountCorC/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - BankAccountCorC - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/BankAccountCorC/src/Account/bankAccountUpdate.diagram b/BankAccountCorC/src/Account/bankAccountUpdate.diagram deleted file mode 100644 index 02e15d38e..000000000 --- a/BankAccountCorC/src/Account/bankAccountUpdate.diagram +++ /dev/null @@ -1,1487 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/BankAccountOO/features/BankAccount/Account/update.diagram b/BankAccountOO/features/BankAccount/Account/update.diagram deleted file mode 100644 index 536905bcb..000000000 --- a/BankAccountOO/features/BankAccount/Account/update.diagram +++ /dev/null @@ -1,1424 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ElevatorCorC/.classpath b/ElevatorCorC/.classpath deleted file mode 100644 index 51a8bbad8..000000000 --- a/ElevatorCorC/.classpath +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/ElevatorOO/features/Base/Elevator/continueInDirection.diagram b/ElevatorOO/features/Base/Elevator/continueInDirection.diagram deleted file mode 100644 index 0c77aa786..000000000 --- a/ElevatorOO/features/Base/Elevator/continueInDirection.diagram +++ /dev/null @@ -1,2672 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ElevatorOO/features/Base/Floor/Floor.diagram b/ElevatorOO/features/Base/Floor/Floor.diagram deleted file mode 100644 index 0e1a19412..000000000 --- a/ElevatorOO/features/Base/Floor/Floor.diagram +++ /dev/null @@ -1,1153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/EmailCorC/.classpath b/EmailCorC/.classpath deleted file mode 100644 index 9f9bbb561..000000000 --- a/EmailCorC/.classpath +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/EmailCorC/.project b/EmailCorC/.project deleted file mode 100644 index 656aa7327..000000000 --- a/EmailCorC/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - EmailCorC - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/EmailCorC/src/Client/getClientByAdress.diagram b/EmailCorC/src/Client/getClientByAdress.diagram deleted file mode 100644 index b46269a9e..000000000 --- a/EmailCorC/src/Client/getClientByAdress.diagram +++ /dev/null @@ -1,1955 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/EmailCorC/src/Client/getName.diagram b/EmailCorC/src/Client/getName.diagram deleted file mode 100644 index 6a74b14a9..000000000 --- a/EmailCorC/src/Client/getName.diagram +++ /dev/null @@ -1,1051 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/EmailCorC/src/Client/getNameWithKeyword.diagram b/EmailCorC/src/Client/getNameWithKeyword.diagram deleted file mode 100644 index a1dacad64..000000000 --- a/EmailCorC/src/Client/getNameWithKeyword.diagram +++ /dev/null @@ -1,1051 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/.featureide/model.xml/model.xml.xml b/IntegerList/.featureide/model.xml/model.xml.xml deleted file mode 100644 index f43320ae9..000000000 --- a/IntegerList/.featureide/model.xml/model.xml.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/IntegerList/features/Base/IntList/provepush/Base/Statement3.key b/IntegerList/features/Base/IntList/provepush/Base/Statement3.key deleted file mode 100644 index c1c11d1fc..000000000 --- a/IntegerList/features/Base/IntList/provepush/Base/Statement3.key +++ /dev/null @@ -1,261 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:37:10 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - i=0; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & i = Z(0(#)) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "203") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "17") (term "1,0,1")) -(rule "eqSymm" (formula "5")) -(rule "polySimp_homoEq" (formula "17") (term "0,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "17") (term "1,0,2,0,1,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_addComm0" (formula "17") (term "0,0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm1" (formula "17") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,1,0,0,0,1")) -(rule "assignment" (formula "17") (term "1")) -(builtin "One Step Simplification" (formula "17")) -(rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "5")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "applyEq" (formula "8") (term "1,0") (ifseqformula "5")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "7") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "14") (term "0") (ifseqformula "5")) -(rule "polySimp_sepPosMonomial" (formula "16") (term "0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_sepNegMonomial" (formula "1")) -(rule "polySimp_mulLiterals" (formula "1") (term "0")) -(rule "polySimp_elimOne" (formula "1") (term "0")) -(rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) -(rule "add_literals" (formula "2") (term "0,0,2,0")) -(rule "add_zero_left" (formula "2") (term "0,2,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "nnf_imp2or" (formula "16") (term "0,1,0,0,0,1")) -(rule "nnf_notAnd" (formula "16") (term "0,0,1,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "times_zero_1" (formula "16") (term "1,0,0,0,0,0,1,0,0,0,1")) -(rule "add_zero_right" (formula "16") (term "0,0,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "1,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,1,0,0,1,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "add_literals" (formula "16") (term "0,0,0,1,0,0,1,0,0,0,1")) -(rule "add_zero_left" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "emptyModality" (formula "16") (term "1")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "0,0,0,0") (ifseqformula "5")) -(rule "polySimp_homoEq" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "applyEq" (formula "16") (term "1,0,2,0,1,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,2,0,1,0")) -(rule "add_literals" (formula "16") (term "0,0,2,0,1,0")) -(rule "add_zero_left" (formula "16") (term "0,2,0,1,0")) -(rule "replace_known_left" (formula "16") (term "1,0") (ifseqformula "2")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "1,0,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "add_literals" (formula "16") (term "0,0,0,0")) -(rule "add_zero_left" (formula "16") (term "0,0,0")) -(rule "polySimp_pullOutFactor2" (formula "16") (term "0,0")) -(rule "add_literals" (formula "16") (term "1,0,0")) -(rule "times_zero_1" (formula "16") (term "0,0")) -(builtin "One Step Simplification" (formula "16")) -(rule "allRight" (formula "16") (inst "sk=j_0")) -(rule "orRight" (formula "16")) -(rule "orRight" (formula "16")) -(rule "inEqSimp_geqRight" (formula "17")) -(rule "times_zero_1" (formula "1") (term "1,0,0")) -(rule "add_zero_right" (formula "1") (term "0,0")) -(rule "inEqSimp_leqRight" (formula "17")) -(rule "mul_literals" (formula "1") (term "1,0,0")) -(rule "add_literals" (formula "1") (term "0,0")) -(rule "add_zero_left" (formula "1") (term "0")) -(rule "applyEq" (formula "18") (term "1,0") (ifseqformula "7")) -(rule "eqSymm" (formula "18")) -(rule "inEqSimp_sepPosMonomial0" (formula "2")) -(rule "mul_literals" (formula "2") (term "1")) -(rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "1")) -(rule "qeq_literals" (formula "2") (term "0")) -(builtin "One Step Simplification" (formula "2")) -(rule "closeFalse" (formula "2")) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/Base/Statement4.key b/IntegerList/features/Base/IntList/provepush/Base/Statement4.key deleted file mode 100644 index 898bc6400..000000000 --- a/IntegerList/features/Base/IntList/provepush/Base/Statement4.key +++ /dev/null @@ -1,578 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:36:35 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - tmp[i]=self.data[i]; - i++; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "1279") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "19") (term "1,0,1")) -(rule "eqSymm" (formula "7")) -(rule "polySimp_homoEq" (formula "19") (term "0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "mul_literals" (formula "19") (term "1,0,2,0,1,0,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "19") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "19") (term "0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "19") (term "1,0,0,1,0,0,1")) -(rule "polySimp_mulComm0" (formula "19") (term "1,0,0,1,0,0,1,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "19") (term "0,0,0,1,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "eval_order_array_access3" (formula "19") (term "1") (inst "#v1=x_1") (inst "#v2=x") (inst "#v0=x_arr")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_1")) -(rule "eval_order_array_access4" (formula "19") (term "1") (inst "#v0=x_arr_1")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr_1")) -(rule "assignment_read_attribute" (formula "19")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_array2" (formula "19")) - (branch "Normal Execution (x_arr_1 != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_to_primitive_array_component" (formula "19")) - (branch "Normal Execution (x_arr != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "applyEq" (formula "4") (term "0,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "7")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0") (ifseqformula "7")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "7")) - (rule "applyEq" (formula "10") (term "1,0") (ifseqformula "7")) - (rule "applyEq" (formula "18") (term "1,3,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "7")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "9") (term "0,0") (ifseqformula "7")) - (rule "polySimp_sepPosMonomial" (formula "18") (term "0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "4")) - (rule "polySimp_mulLiterals" (formula "4") (term "0")) - (rule "polySimp_elimOne" (formula "4") (term "0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "nnf_imp2or" (formula "18") (term "0,1,0,0,1")) - (rule "nnf_notAnd" (formula "18") (term "0,0,1,0,0,1")) - (rule "inEqSimp_notLeq" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,1,0,0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "add_literals" (formula "18") (term "0,0,0,1,0,0,1,0,0,1")) - (rule "add_zero_left" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "inEqSimp_notGeq" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0,0,0,1,0,0,1")) - (rule "add_zero_right" (formula "18") (term "0,0,0,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "1,0,0,0,1,0,0,1")) - (rule "postincrement" (formula "18") (term "1")) - (rule "compound_int_cast_expression" (formula "18") (term "1") (inst "#v=x")) - (rule "variableDeclarationAssign" (formula "18") (term "1")) - (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_2")) - (rule "remove_parentheses_right" (formula "18") (term "1")) - (rule "assignmentAdditionInt" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "translateJavaAddInt" (formula "18") (term "0,1,0")) - (rule "polySimp_addComm0" (formula "18") (term "0,1,0")) - (rule "widening_identity_cast_5" (formula "18") (term "1")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "dismissNonSelectedField" (formula "18") (term "1,0,1,0,1")) - (rule "dismissNonSelectedField" (formula "18") (term "0,0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,2,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,2,0,1,0")) - (rule "add_literals" (formula "18") (term "0,0,2,0,1,0")) - (rule "add_zero_left" (formula "18") (term "0,2,0,1,0")) - (rule "applyEq" (formula "18") (term "0,0,0,0") (ifseqformula "7")) - (rule "polySimp_homoEq" (formula "18") (term "0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1") (ifseqformula "7")) - (rule "eqSymm" (formula "18") (term "1,0,1")) - (rule "applyEq" (formula "18") (term "1,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0,0")) - (rule "add_literals" (formula "18") (term "0,0,0,0,0")) - (rule "add_zero_left" (formula "18") (term "0,0,0,0")) - (rule "polySimp_pullOutFactor2" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0,0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "19") (term "0")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) - (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "5")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "19") (term "1,0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "19")) - (rule "allRight" (formula "19") (inst "sk=j_0")) - (rule "orRight" (formula "19")) - (rule "orRight" (formula "19")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0")) - (rule "inEqSimp_leqRight" (formula "19")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "1")) - (rule "polySimp_elimOne" (formula "2") (term "1")) - (rule "pullOutSelect" (formula "20") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "21")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "pullOutSelect" (formula "21") (term "0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "1") (term "1,0,0")) - (rule "inEqSimp_exactShadow3" (formula "3") (ifseqformula "4")) - (rule "mul_literals" (formula "3") (term "0,0")) - (rule "add_zero_left" (formula "3") (term "0")) - (rule "arrayLengthNotNegative" (formula "9") (term "0")) - (rule "arrayLengthIsAnInt" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "applyEq" (formula "5") (term "0") (ifseqformula "6")) - (rule "inEqSimp_sepPosMonomial1" (formula "5")) - (rule "mul_literals" (formula "5") (term "1")) - (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "10")) - (rule "leq_literals" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "j_0 = i TRUE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "3")) - (rule "hideAuxiliaryEq" (formula "3")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEq" (formula "1") (term "0,2,2,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22"))) - (rule "closeFalse" (formula "1")) - ) - (branch "j_0 = i FALSE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "2")) - (rule "hideAuxiliaryEq" (formula "2")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_right" (formula "1") (term "1,0,0") (ifseqformula "18")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "22") (term "1") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) - (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) - (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) - (rule "add_literals" (formula "17") (term "1,1,0,0")) - (rule "times_zero_1" (formula "17") (term "1,0,0")) - (rule "add_zero_right" (formula "17") (term "0,0")) - (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) - (rule "false_right" (formula "17")) - (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) - (rule "times_zero_1" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "9") (ifseqformula "1")) - (rule "leq_literals" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "6") (inst "t=j_0")) - (rule "replace_known_right" (formula "6") (term "1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "6") (term "1") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1")) - (rule "polySimp_mulComm0" (formula "6") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "6") (term "1,0,0,1")) - (rule "mul_literals" (formula "6") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "6") (term "0,0,1")) - (rule "polySimp_addComm0" (formula "6") (term "0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1")) - (rule "add_zero_right" (formula "6") (term "0,0,1")) - (rule "leq_literals" (formula "6") (term "0,1")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "6")) - (rule "qeq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "closeFalse" (formula "2")) - ) - ) - (branch "Null Reference (x_arr = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr != null, but x Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "18") (term "0") (ifseqformula "8")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "polySimp_addComm0" (formula "1") (term "0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_sepNegMonomial1" (formula "1") (term "0")) - (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) - (rule "polySimp_elimOne" (formula "1") (term "0,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0")) - (rule "mul_literals" (formula "1") (term "0,1,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0")) - (rule "polySimp_addComm1" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - ) - (branch "Null Reference (x_arr_1 = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr_1 != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "8")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "19"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/Base/Statement5.key b/IntegerList/features/Base/IntList/provepush/Base/Statement5.key deleted file mode 100644 index fbd68d102..000000000 --- a/IntegerList/features/Base/IntList/provepush/Base/Statement5.key +++ /dev/null @@ -1,472 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 14:18:37 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int i; - ( leq(Z(0(#)), i) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(i)) - = int::select(heap, tmp, arr(i))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - self.data=tmp; - }\> ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(data1_oldVal)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = int::select(heap, - data1_oldVal, - arr(k)))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(sub(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))))) - = newTop - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "661") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "18") (term "1,0,1")) -(rule "eqSymm" (formula "6")) -(rule "polySimp_elimSub" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "mul_literals" (formula "18") (term "1,0,2,0,1,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "assignment_write_attribute" (formula "18")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "6")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "18") (term "0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "16") (term "0") (ifseqformula "6")) - (rule "applyEq" (formula "3") (term "0,0,1,0,0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "6")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "9") (term "1,0") (ifseqformula "6")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "nnf_imp2or" (formula "17") (term "0,1,0,0,0,1")) - (rule "nnf_notAnd" (formula "17") (term "0,0,1,0,0,0,1")) - (rule "inEqSimp_notLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,0,0,1,0,0,1,0,0,0,1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "add_literals" (formula "17") (term "0,0,0,1,0,0,1,0,0,0,1")) - (rule "add_zero_left" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_notGeq" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "times_zero_1" (formula "17") (term "1,0,0,0,0,0,1,0,0,0,1")) - (rule "add_zero_right" (formula "17") (term "0,0,0,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "1,0,0,0,1,0,0,0,1")) - (rule "emptyModality" (formula "17") (term "1")) - (builtin "One Step Simplification" (formula "17")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "1,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,0,0")) - (rule "pullOutSelect" (formula "17") (term "0,1,1,1,0,0,0,0") (inst "selectSK=IntList_data_0")) - (rule "applyEq" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "0")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,0,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,0,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,0,0")) - (rule "applyEq" (formula "17") (term "1,0,2,0,1") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,2,0,1")) - (rule "add_literals" (formula "17") (term "0,0,2,0,1")) - (rule "add_zero_left" (formula "17") (term "0,2,0,1")) - (rule "replace_known_left" (formula "17") (term "1") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "17")) - (rule "andRight" (formula "17")) - (branch - (rule "nnf_ex2all" (formula "17")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "applyEq" (formula "2") (term "0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial1" (formula "2")) - (rule "mul_literals" (formula "2") (term "1")) - (rule "inEqSimp_subsumption1" (formula "2") (ifseqformula "6")) - (rule "leq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "allLeft" (formula "1") (inst "t=length(data1_oldVal)")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,1")) - (rule "add_zero_right" (formula "1") (term "0,1")) - (rule "leq_literals" (formula "1") (term "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch - (rule "allRight" (formula "17") (inst "sk=k_0")) - (rule "orRight" (formula "17")) - (rule "orRight" (formula "17")) - (rule "inEqSimp_geqRight" (formula "18")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepNegMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "nnf_ex2all" (formula "19")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "7") (term "0")) - (rule "arrayLengthIsAnInt" (formula "7") (term "0")) - (builtin "One Step Simplification" (formula "7")) - (rule "true_left" (formula "7")) - (rule "arrayLengthNotNegative" (formula "4") (term "0")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "5")) - (rule "inEqSimp_sepPosMonomial1" (formula "4")) - (rule "mul_literals" (formula "4") (term "1")) - (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "8")) - (rule "leq_literals" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "arrayLengthIsAnInt" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "allLeft" (formula "6") (inst "t=k_0")) - (rule "inEqSimp_commuteGeq" (formula "6") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "1,0") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1,0")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "6") (term "0,0,1,0")) - (rule "leq_literals" (formula "6") (term "0,1,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "0") (ifseqformula "2")) - (rule "qeq_literals" (formula "6") (term "0,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "allLeft" (formula "1") (inst "t=k_0")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_addComm1" (formula "1") (term "0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,1")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) - (rule "mul_literals" (formula "1") (term "0,1,1")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "4")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) - (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) - (rule "add_literals" (formula "1") (term "0,0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseCons/Statement3.key b/IntegerList/features/Base/IntList/provepush/BaseCons/Statement3.key deleted file mode 100644 index 434dc4f94..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseCons/Statement3.key +++ /dev/null @@ -1,261 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:37:20 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - i=0; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & i = Z(0(#)) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "192") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "17") (term "1,0,1")) -(rule "eqSymm" (formula "5")) -(rule "polySimp_homoEq" (formula "17") (term "0,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "17") (term "1,0,2,0,1,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_addComm0" (formula "17") (term "0,0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm1" (formula "17") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,1,0,0,0,1")) -(rule "assignment" (formula "17") (term "1")) -(builtin "One Step Simplification" (formula "17")) -(rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "5")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "applyEq" (formula "8") (term "1,0") (ifseqformula "5")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "7") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "14") (term "0") (ifseqformula "5")) -(rule "polySimp_sepPosMonomial" (formula "16") (term "0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_sepNegMonomial" (formula "1")) -(rule "polySimp_mulLiterals" (formula "1") (term "0")) -(rule "polySimp_elimOne" (formula "1") (term "0")) -(rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) -(rule "add_literals" (formula "2") (term "0,0,2,0")) -(rule "add_zero_left" (formula "2") (term "0,2,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "nnf_imp2or" (formula "16") (term "0,1,0,0,0,1")) -(rule "nnf_notAnd" (formula "16") (term "0,0,1,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "times_zero_1" (formula "16") (term "1,0,0,0,0,0,1,0,0,0,1")) -(rule "add_zero_right" (formula "16") (term "0,0,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "1,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,1,0,0,1,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "add_literals" (formula "16") (term "0,0,0,1,0,0,1,0,0,0,1")) -(rule "add_zero_left" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "emptyModality" (formula "16") (term "1")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "0,0,0,0") (ifseqformula "5")) -(rule "polySimp_homoEq" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "applyEq" (formula "16") (term "1,0,2,0,1,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,2,0,1,0")) -(rule "add_literals" (formula "16") (term "0,0,2,0,1,0")) -(rule "add_zero_left" (formula "16") (term "0,2,0,1,0")) -(rule "replace_known_left" (formula "16") (term "1,0") (ifseqformula "2")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "1,0,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "add_literals" (formula "16") (term "0,0,0,0")) -(rule "add_zero_left" (formula "16") (term "0,0,0")) -(rule "polySimp_pullOutFactor2" (formula "16") (term "0,0")) -(rule "add_literals" (formula "16") (term "1,0,0")) -(rule "times_zero_1" (formula "16") (term "0,0")) -(builtin "One Step Simplification" (formula "16")) -(rule "allRight" (formula "16") (inst "sk=j_0")) -(rule "orRight" (formula "16")) -(rule "orRight" (formula "16")) -(rule "inEqSimp_geqRight" (formula "17")) -(rule "times_zero_1" (formula "1") (term "1,0,0")) -(rule "add_zero_right" (formula "1") (term "0,0")) -(rule "inEqSimp_leqRight" (formula "17")) -(rule "mul_literals" (formula "1") (term "1,0,0")) -(rule "add_literals" (formula "1") (term "0,0")) -(rule "add_zero_left" (formula "1") (term "0")) -(rule "applyEq" (formula "18") (term "1,0") (ifseqformula "7")) -(rule "eqSymm" (formula "18")) -(rule "inEqSimp_sepPosMonomial0" (formula "2")) -(rule "mul_literals" (formula "2") (term "1")) -(rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "1")) -(rule "qeq_literals" (formula "2") (term "0")) -(builtin "One Step Simplification" (formula "2")) -(rule "closeFalse" (formula "2")) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseCons/Statement4.key b/IntegerList/features/Base/IntList/provepush/BaseCons/Statement4.key deleted file mode 100644 index 6762df2d7..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseCons/Statement4.key +++ /dev/null @@ -1,578 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:36:40 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - tmp[i]=self.data[i]; - i++; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "605") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "19") (term "1,0,1")) -(rule "eqSymm" (formula "7")) -(rule "polySimp_homoEq" (formula "19") (term "0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "mul_literals" (formula "19") (term "1,0,2,0,1,0,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "19") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "19") (term "0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "19") (term "1,0,0,1,0,0,1")) -(rule "polySimp_mulComm0" (formula "19") (term "1,0,0,1,0,0,1,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "19") (term "0,0,0,1,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "eval_order_array_access3" (formula "19") (term "1") (inst "#v1=x_1") (inst "#v2=x") (inst "#v0=x_arr")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_1")) -(rule "eval_order_array_access4" (formula "19") (term "1") (inst "#v0=x_arr_1")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr_1")) -(rule "assignment_read_attribute" (formula "19")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_array2" (formula "19")) - (branch "Normal Execution (x_arr_1 != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_to_primitive_array_component" (formula "19")) - (branch "Normal Execution (x_arr != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "applyEq" (formula "4") (term "0,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "7")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0") (ifseqformula "7")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "7")) - (rule "applyEq" (formula "10") (term "1,0") (ifseqformula "7")) - (rule "applyEq" (formula "18") (term "1,3,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "7")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "9") (term "0,0") (ifseqformula "7")) - (rule "polySimp_sepPosMonomial" (formula "18") (term "0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "4")) - (rule "polySimp_mulLiterals" (formula "4") (term "0")) - (rule "polySimp_elimOne" (formula "4") (term "0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "nnf_imp2or" (formula "18") (term "0,1,0,0,1")) - (rule "nnf_notAnd" (formula "18") (term "0,0,1,0,0,1")) - (rule "inEqSimp_notLeq" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,1,0,0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "add_literals" (formula "18") (term "0,0,0,1,0,0,1,0,0,1")) - (rule "add_zero_left" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "inEqSimp_notGeq" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0,0,0,1,0,0,1")) - (rule "add_zero_right" (formula "18") (term "0,0,0,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "1,0,0,0,1,0,0,1")) - (rule "postincrement" (formula "18") (term "1")) - (rule "compound_int_cast_expression" (formula "18") (term "1") (inst "#v=x")) - (rule "variableDeclarationAssign" (formula "18") (term "1")) - (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_2")) - (rule "remove_parentheses_right" (formula "18") (term "1")) - (rule "assignmentAdditionInt" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "translateJavaAddInt" (formula "18") (term "0,1,0")) - (rule "polySimp_addComm0" (formula "18") (term "0,1,0")) - (rule "widening_identity_cast_5" (formula "18") (term "1")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "dismissNonSelectedField" (formula "18") (term "1,0,1,0,1")) - (rule "dismissNonSelectedField" (formula "18") (term "0,0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,2,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,2,0,1,0")) - (rule "add_literals" (formula "18") (term "0,0,2,0,1,0")) - (rule "add_zero_left" (formula "18") (term "0,2,0,1,0")) - (rule "applyEq" (formula "18") (term "0,0,0,0") (ifseqformula "7")) - (rule "polySimp_homoEq" (formula "18") (term "0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1") (ifseqformula "7")) - (rule "eqSymm" (formula "18") (term "1,0,1")) - (rule "applyEq" (formula "18") (term "1,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0,0")) - (rule "add_literals" (formula "18") (term "0,0,0,0,0")) - (rule "add_zero_left" (formula "18") (term "0,0,0,0")) - (rule "polySimp_pullOutFactor2" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0,0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "19") (term "0")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) - (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "5")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "19") (term "1,0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "19")) - (rule "allRight" (formula "19") (inst "sk=j_0")) - (rule "orRight" (formula "19")) - (rule "orRight" (formula "19")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0")) - (rule "inEqSimp_leqRight" (formula "19")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "1")) - (rule "polySimp_elimOne" (formula "2") (term "1")) - (rule "pullOutSelect" (formula "20") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "21")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "pullOutSelect" (formula "21") (term "0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "1") (term "1,0,0")) - (rule "inEqSimp_exactShadow3" (formula "3") (ifseqformula "4")) - (rule "mul_literals" (formula "3") (term "0,0")) - (rule "add_zero_left" (formula "3") (term "0")) - (rule "arrayLengthNotNegative" (formula "9") (term "0")) - (rule "arrayLengthIsAnInt" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "applyEq" (formula "5") (term "0") (ifseqformula "6")) - (rule "inEqSimp_sepPosMonomial1" (formula "5")) - (rule "mul_literals" (formula "5") (term "1")) - (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "10")) - (rule "leq_literals" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "j_0 = i TRUE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "3")) - (rule "hideAuxiliaryEq" (formula "3")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEq" (formula "1") (term "0,2,2,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22"))) - (rule "closeFalse" (formula "1")) - ) - (branch "j_0 = i FALSE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "2")) - (rule "hideAuxiliaryEq" (formula "2")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_right" (formula "1") (term "1,0,0") (ifseqformula "18")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "22") (term "1") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) - (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) - (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) - (rule "add_literals" (formula "17") (term "1,1,0,0")) - (rule "times_zero_1" (formula "17") (term "1,0,0")) - (rule "add_zero_right" (formula "17") (term "0,0")) - (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) - (rule "false_right" (formula "17")) - (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) - (rule "times_zero_1" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "9") (ifseqformula "1")) - (rule "leq_literals" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "6") (inst "t=j_0")) - (rule "replace_known_right" (formula "6") (term "1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "6") (term "1") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1")) - (rule "polySimp_mulComm0" (formula "6") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "6") (term "1,0,0,1")) - (rule "mul_literals" (formula "6") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "6") (term "0,0,1")) - (rule "polySimp_addComm0" (formula "6") (term "0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1")) - (rule "add_zero_right" (formula "6") (term "0,0,1")) - (rule "leq_literals" (formula "6") (term "0,1")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "6")) - (rule "qeq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "closeFalse" (formula "2")) - ) - ) - (branch "Null Reference (x_arr = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr != null, but x Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "18") (term "0") (ifseqformula "8")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "polySimp_addComm0" (formula "1") (term "0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_sepNegMonomial1" (formula "1") (term "0")) - (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) - (rule "polySimp_elimOne" (formula "1") (term "0,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0")) - (rule "mul_literals" (formula "1") (term "0,1,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0")) - (rule "polySimp_addComm1" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - ) - (branch "Null Reference (x_arr_1 = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr_1 != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "8")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "19"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseCons/Statement5.key b/IntegerList/features/Base/IntList/provepush/BaseCons/Statement5.key deleted file mode 100644 index c1a65400d..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseCons/Statement5.key +++ /dev/null @@ -1,472 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 14:18:53 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int i; - ( leq(Z(0(#)), i) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(i)) - = int::select(heap, tmp, arr(i))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - self.data=tmp; - }\> ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(data1_oldVal)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = int::select(heap, - data1_oldVal, - arr(k)))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(sub(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))))) - = newTop - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "566") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "18") (term "1,0,1")) -(rule "eqSymm" (formula "6")) -(rule "polySimp_elimSub" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "mul_literals" (formula "18") (term "1,0,2,0,1,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "assignment_write_attribute" (formula "18")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "6")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "18") (term "0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "16") (term "0") (ifseqformula "6")) - (rule "applyEq" (formula "3") (term "0,0,1,0,0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "6")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "9") (term "1,0") (ifseqformula "6")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "nnf_imp2or" (formula "17") (term "0,1,0,0,0,1")) - (rule "nnf_notAnd" (formula "17") (term "0,0,1,0,0,0,1")) - (rule "inEqSimp_notLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,0,0,1,0,0,1,0,0,0,1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "add_literals" (formula "17") (term "0,0,0,1,0,0,1,0,0,0,1")) - (rule "add_zero_left" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_notGeq" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "times_zero_1" (formula "17") (term "1,0,0,0,0,0,1,0,0,0,1")) - (rule "add_zero_right" (formula "17") (term "0,0,0,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "1,0,0,0,1,0,0,0,1")) - (rule "emptyModality" (formula "17") (term "1")) - (builtin "One Step Simplification" (formula "17")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "1,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,0,0")) - (rule "pullOutSelect" (formula "17") (term "0,1,1,1,0,0,0,0") (inst "selectSK=IntList_data_0")) - (rule "applyEq" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "0")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,0,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,0,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,0,0")) - (rule "applyEq" (formula "17") (term "1,0,2,0,1") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,2,0,1")) - (rule "add_literals" (formula "17") (term "0,0,2,0,1")) - (rule "add_zero_left" (formula "17") (term "0,2,0,1")) - (rule "replace_known_left" (formula "17") (term "1") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "17")) - (rule "andRight" (formula "17")) - (branch - (rule "nnf_ex2all" (formula "17")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "applyEq" (formula "2") (term "0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial1" (formula "2")) - (rule "mul_literals" (formula "2") (term "1")) - (rule "inEqSimp_subsumption1" (formula "2") (ifseqformula "6")) - (rule "leq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "allLeft" (formula "1") (inst "t=length(data1_oldVal)")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,1")) - (rule "add_zero_right" (formula "1") (term "0,1")) - (rule "leq_literals" (formula "1") (term "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch - (rule "allRight" (formula "17") (inst "sk=k_0")) - (rule "orRight" (formula "17")) - (rule "orRight" (formula "17")) - (rule "inEqSimp_geqRight" (formula "18")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepNegMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "nnf_ex2all" (formula "19")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "7") (term "0")) - (rule "arrayLengthIsAnInt" (formula "7") (term "0")) - (builtin "One Step Simplification" (formula "7")) - (rule "true_left" (formula "7")) - (rule "arrayLengthNotNegative" (formula "4") (term "0")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "5")) - (rule "inEqSimp_sepPosMonomial1" (formula "4")) - (rule "mul_literals" (formula "4") (term "1")) - (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "8")) - (rule "leq_literals" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "arrayLengthIsAnInt" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "allLeft" (formula "6") (inst "t=k_0")) - (rule "inEqSimp_commuteGeq" (formula "6") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "1,0") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1,0")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "6") (term "0,0,1,0")) - (rule "leq_literals" (formula "6") (term "0,1,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "0") (ifseqformula "2")) - (rule "qeq_literals" (formula "6") (term "0,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "allLeft" (formula "1") (inst "t=k_0")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_addComm1" (formula "1") (term "0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,1")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) - (rule "mul_literals" (formula "1") (term "0,1,1")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "4")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) - (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) - (rule "add_literals" (formula "1") (term "0,0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement3.key b/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement3.key deleted file mode 100644 index dee279542..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement3.key +++ /dev/null @@ -1,261 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:37:18 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - i=0; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & i = Z(0(#)) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "218") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "17") (term "1,0,1")) -(rule "eqSymm" (formula "5")) -(rule "polySimp_homoEq" (formula "17") (term "0,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "17") (term "1,0,2,0,1,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_addComm0" (formula "17") (term "0,0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm1" (formula "17") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,1,0,0,0,1")) -(rule "assignment" (formula "17") (term "1")) -(builtin "One Step Simplification" (formula "17")) -(rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "5")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "applyEq" (formula "8") (term "1,0") (ifseqformula "5")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "7") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "14") (term "0") (ifseqformula "5")) -(rule "polySimp_sepPosMonomial" (formula "16") (term "0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_sepNegMonomial" (formula "1")) -(rule "polySimp_mulLiterals" (formula "1") (term "0")) -(rule "polySimp_elimOne" (formula "1") (term "0")) -(rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) -(rule "add_literals" (formula "2") (term "0,0,2,0")) -(rule "add_zero_left" (formula "2") (term "0,2,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "nnf_imp2or" (formula "16") (term "0,1,0,0,0,1")) -(rule "nnf_notAnd" (formula "16") (term "0,0,1,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "times_zero_1" (formula "16") (term "1,0,0,0,0,0,1,0,0,0,1")) -(rule "add_zero_right" (formula "16") (term "0,0,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "1,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,1,0,0,1,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "add_literals" (formula "16") (term "0,0,0,1,0,0,1,0,0,0,1")) -(rule "add_zero_left" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "emptyModality" (formula "16") (term "1")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "0,0,0,0") (ifseqformula "5")) -(rule "polySimp_homoEq" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "applyEq" (formula "16") (term "1,0,2,0,1,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,2,0,1,0")) -(rule "add_literals" (formula "16") (term "0,0,2,0,1,0")) -(rule "add_zero_left" (formula "16") (term "0,2,0,1,0")) -(rule "replace_known_left" (formula "16") (term "1,0") (ifseqformula "2")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "1,0,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "add_literals" (formula "16") (term "0,0,0,0")) -(rule "add_zero_left" (formula "16") (term "0,0,0")) -(rule "polySimp_pullOutFactor2" (formula "16") (term "0,0")) -(rule "add_literals" (formula "16") (term "1,0,0")) -(rule "times_zero_1" (formula "16") (term "0,0")) -(builtin "One Step Simplification" (formula "16")) -(rule "allRight" (formula "16") (inst "sk=j_0")) -(rule "orRight" (formula "16")) -(rule "orRight" (formula "16")) -(rule "inEqSimp_geqRight" (formula "17")) -(rule "times_zero_1" (formula "1") (term "1,0,0")) -(rule "add_zero_right" (formula "1") (term "0,0")) -(rule "inEqSimp_leqRight" (formula "17")) -(rule "mul_literals" (formula "1") (term "1,0,0")) -(rule "add_literals" (formula "1") (term "0,0")) -(rule "add_zero_left" (formula "1") (term "0")) -(rule "applyEq" (formula "18") (term "1,0") (ifseqformula "7")) -(rule "eqSymm" (formula "18")) -(rule "inEqSimp_sepPosMonomial0" (formula "2")) -(rule "mul_literals" (formula "2") (term "1")) -(rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "1")) -(rule "qeq_literals" (formula "2") (term "0")) -(builtin "One Step Simplification" (formula "2")) -(rule "closeFalse" (formula "2")) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement4.key b/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement4.key deleted file mode 100644 index 0620011bd..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement4.key +++ /dev/null @@ -1,578 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:36:39 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - tmp[i]=self.data[i]; - i++; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "639") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "19") (term "1,0,1")) -(rule "eqSymm" (formula "7")) -(rule "polySimp_homoEq" (formula "19") (term "0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "mul_literals" (formula "19") (term "1,0,2,0,1,0,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "19") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "19") (term "0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "19") (term "1,0,0,1,0,0,1")) -(rule "polySimp_mulComm0" (formula "19") (term "1,0,0,1,0,0,1,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "19") (term "0,0,0,1,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "eval_order_array_access3" (formula "19") (term "1") (inst "#v1=x_1") (inst "#v2=x") (inst "#v0=x_arr")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_1")) -(rule "eval_order_array_access4" (formula "19") (term "1") (inst "#v0=x_arr_1")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr_1")) -(rule "assignment_read_attribute" (formula "19")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_array2" (formula "19")) - (branch "Normal Execution (x_arr_1 != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_to_primitive_array_component" (formula "19")) - (branch "Normal Execution (x_arr != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "applyEq" (formula "4") (term "0,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "7")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0") (ifseqformula "7")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "7")) - (rule "applyEq" (formula "10") (term "1,0") (ifseqformula "7")) - (rule "applyEq" (formula "18") (term "1,3,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "7")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "9") (term "0,0") (ifseqformula "7")) - (rule "polySimp_sepPosMonomial" (formula "18") (term "0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "4")) - (rule "polySimp_mulLiterals" (formula "4") (term "0")) - (rule "polySimp_elimOne" (formula "4") (term "0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "nnf_imp2or" (formula "18") (term "0,1,0,0,1")) - (rule "nnf_notAnd" (formula "18") (term "0,0,1,0,0,1")) - (rule "inEqSimp_notLeq" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,1,0,0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "add_literals" (formula "18") (term "0,0,0,1,0,0,1,0,0,1")) - (rule "add_zero_left" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "inEqSimp_notGeq" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0,0,0,1,0,0,1")) - (rule "add_zero_right" (formula "18") (term "0,0,0,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "1,0,0,0,1,0,0,1")) - (rule "postincrement" (formula "18") (term "1")) - (rule "compound_int_cast_expression" (formula "18") (term "1") (inst "#v=x")) - (rule "variableDeclarationAssign" (formula "18") (term "1")) - (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_2")) - (rule "remove_parentheses_right" (formula "18") (term "1")) - (rule "assignmentAdditionInt" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "translateJavaAddInt" (formula "18") (term "0,1,0")) - (rule "polySimp_addComm0" (formula "18") (term "0,1,0")) - (rule "widening_identity_cast_5" (formula "18") (term "1")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "dismissNonSelectedField" (formula "18") (term "1,0,1,0,1")) - (rule "dismissNonSelectedField" (formula "18") (term "0,0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,2,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,2,0,1,0")) - (rule "add_literals" (formula "18") (term "0,0,2,0,1,0")) - (rule "add_zero_left" (formula "18") (term "0,2,0,1,0")) - (rule "applyEq" (formula "18") (term "0,0,0,0") (ifseqformula "7")) - (rule "polySimp_homoEq" (formula "18") (term "0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1") (ifseqformula "7")) - (rule "eqSymm" (formula "18") (term "1,0,1")) - (rule "applyEq" (formula "18") (term "1,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0,0")) - (rule "add_literals" (formula "18") (term "0,0,0,0,0")) - (rule "add_zero_left" (formula "18") (term "0,0,0,0")) - (rule "polySimp_pullOutFactor2" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0,0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "19") (term "0")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) - (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "5")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "19") (term "1,0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "19")) - (rule "allRight" (formula "19") (inst "sk=j_0")) - (rule "orRight" (formula "19")) - (rule "orRight" (formula "19")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0")) - (rule "inEqSimp_leqRight" (formula "19")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "1")) - (rule "polySimp_elimOne" (formula "2") (term "1")) - (rule "pullOutSelect" (formula "20") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "21")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "pullOutSelect" (formula "21") (term "0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "1") (term "1,0,0")) - (rule "inEqSimp_exactShadow3" (formula "3") (ifseqformula "4")) - (rule "mul_literals" (formula "3") (term "0,0")) - (rule "add_zero_left" (formula "3") (term "0")) - (rule "arrayLengthNotNegative" (formula "9") (term "0")) - (rule "arrayLengthIsAnInt" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "applyEq" (formula "5") (term "0") (ifseqformula "6")) - (rule "inEqSimp_sepPosMonomial1" (formula "5")) - (rule "mul_literals" (formula "5") (term "1")) - (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "10")) - (rule "leq_literals" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "j_0 = i TRUE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "3")) - (rule "hideAuxiliaryEq" (formula "3")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEq" (formula "1") (term "0,2,2,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22"))) - (rule "closeFalse" (formula "1")) - ) - (branch "j_0 = i FALSE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "2")) - (rule "hideAuxiliaryEq" (formula "2")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_right" (formula "1") (term "1,0,0") (ifseqformula "18")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "22") (term "1") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) - (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) - (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) - (rule "add_literals" (formula "17") (term "1,1,0,0")) - (rule "times_zero_1" (formula "17") (term "1,0,0")) - (rule "add_zero_right" (formula "17") (term "0,0")) - (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) - (rule "false_right" (formula "17")) - (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) - (rule "times_zero_1" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "9") (ifseqformula "1")) - (rule "leq_literals" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "6") (inst "t=j_0")) - (rule "replace_known_right" (formula "6") (term "1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "6") (term "1") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1")) - (rule "polySimp_mulComm0" (formula "6") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "6") (term "1,0,0,1")) - (rule "mul_literals" (formula "6") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "6") (term "0,0,1")) - (rule "polySimp_addComm0" (formula "6") (term "0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1")) - (rule "add_zero_right" (formula "6") (term "0,0,1")) - (rule "leq_literals" (formula "6") (term "0,1")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "6")) - (rule "qeq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "closeFalse" (formula "2")) - ) - ) - (branch "Null Reference (x_arr = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr != null, but x Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "18") (term "0") (ifseqformula "8")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "polySimp_addComm0" (formula "1") (term "0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_sepNegMonomial1" (formula "1") (term "0")) - (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) - (rule "polySimp_elimOne" (formula "1") (term "0,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0")) - (rule "mul_literals" (formula "1") (term "0,1,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0")) - (rule "polySimp_addComm1" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - ) - (branch "Null Reference (x_arr_1 = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr_1 != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "8")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "19"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement5.key b/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement5.key deleted file mode 100644 index df12d084f..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseConsSortedDecreasing/Statement5.key +++ /dev/null @@ -1,472 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 14:18:49 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int i; - ( leq(Z(0(#)), i) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(i)) - = int::select(heap, tmp, arr(i))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - self.data=tmp; - }\> ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(data1_oldVal)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = int::select(heap, - data1_oldVal, - arr(k)))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(sub(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))))) - = newTop - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "631") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "18") (term "1,0,1")) -(rule "eqSymm" (formula "6")) -(rule "polySimp_elimSub" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "mul_literals" (formula "18") (term "1,0,2,0,1,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "assignment_write_attribute" (formula "18")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "6")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "18") (term "0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "16") (term "0") (ifseqformula "6")) - (rule "applyEq" (formula "3") (term "0,0,1,0,0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "6")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "9") (term "1,0") (ifseqformula "6")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "nnf_imp2or" (formula "17") (term "0,1,0,0,0,1")) - (rule "nnf_notAnd" (formula "17") (term "0,0,1,0,0,0,1")) - (rule "inEqSimp_notLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,0,0,1,0,0,1,0,0,0,1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "add_literals" (formula "17") (term "0,0,0,1,0,0,1,0,0,0,1")) - (rule "add_zero_left" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_notGeq" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "times_zero_1" (formula "17") (term "1,0,0,0,0,0,1,0,0,0,1")) - (rule "add_zero_right" (formula "17") (term "0,0,0,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "1,0,0,0,1,0,0,0,1")) - (rule "emptyModality" (formula "17") (term "1")) - (builtin "One Step Simplification" (formula "17")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "1,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,0,0")) - (rule "pullOutSelect" (formula "17") (term "0,1,1,1,0,0,0,0") (inst "selectSK=IntList_data_0")) - (rule "applyEq" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "0")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,0,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,0,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,0,0")) - (rule "applyEq" (formula "17") (term "1,0,2,0,1") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,2,0,1")) - (rule "add_literals" (formula "17") (term "0,0,2,0,1")) - (rule "add_zero_left" (formula "17") (term "0,2,0,1")) - (rule "replace_known_left" (formula "17") (term "1") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "17")) - (rule "andRight" (formula "17")) - (branch - (rule "nnf_ex2all" (formula "17")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "applyEq" (formula "2") (term "0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial1" (formula "2")) - (rule "mul_literals" (formula "2") (term "1")) - (rule "inEqSimp_subsumption1" (formula "2") (ifseqformula "6")) - (rule "leq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "allLeft" (formula "1") (inst "t=length(data1_oldVal)")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,1")) - (rule "add_zero_right" (formula "1") (term "0,1")) - (rule "leq_literals" (formula "1") (term "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch - (rule "allRight" (formula "17") (inst "sk=k_0")) - (rule "orRight" (formula "17")) - (rule "orRight" (formula "17")) - (rule "inEqSimp_geqRight" (formula "18")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepNegMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "nnf_ex2all" (formula "19")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "7") (term "0")) - (rule "arrayLengthIsAnInt" (formula "7") (term "0")) - (builtin "One Step Simplification" (formula "7")) - (rule "true_left" (formula "7")) - (rule "arrayLengthNotNegative" (formula "4") (term "0")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "5")) - (rule "inEqSimp_sepPosMonomial1" (formula "4")) - (rule "mul_literals" (formula "4") (term "1")) - (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "8")) - (rule "leq_literals" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "arrayLengthIsAnInt" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "allLeft" (formula "6") (inst "t=k_0")) - (rule "inEqSimp_commuteGeq" (formula "6") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "1,0") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1,0")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "6") (term "0,0,1,0")) - (rule "leq_literals" (formula "6") (term "0,1,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "0") (ifseqformula "2")) - (rule "qeq_literals" (formula "6") (term "0,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "allLeft" (formula "1") (inst "t=k_0")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_addComm1" (formula "1") (term "0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,1")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) - (rule "mul_literals" (formula "1") (term "0,1,1")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "4")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) - (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) - (rule "add_literals" (formula "1") (term "0,0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement3.key b/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement3.key deleted file mode 100644 index 014e6edc2..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement3.key +++ /dev/null @@ -1,261 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:37:23 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - i=0; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & i = Z(0(#)) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "221") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "17") (term "1,0,1")) -(rule "eqSymm" (formula "5")) -(rule "polySimp_homoEq" (formula "17") (term "0,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "17") (term "1,0,2,0,1,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_addComm0" (formula "17") (term "0,0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm1" (formula "17") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,1,0,0,0,1")) -(rule "assignment" (formula "17") (term "1")) -(builtin "One Step Simplification" (formula "17")) -(rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "5")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "applyEq" (formula "8") (term "1,0") (ifseqformula "5")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "7") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "14") (term "0") (ifseqformula "5")) -(rule "polySimp_sepPosMonomial" (formula "16") (term "0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_sepNegMonomial" (formula "1")) -(rule "polySimp_mulLiterals" (formula "1") (term "0")) -(rule "polySimp_elimOne" (formula "1") (term "0")) -(rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) -(rule "add_literals" (formula "2") (term "0,0,2,0")) -(rule "add_zero_left" (formula "2") (term "0,2,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "nnf_imp2or" (formula "16") (term "0,1,0,0,0,1")) -(rule "nnf_notAnd" (formula "16") (term "0,0,1,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "times_zero_1" (formula "16") (term "1,0,0,0,0,0,1,0,0,0,1")) -(rule "add_zero_right" (formula "16") (term "0,0,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "1,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,1,0,0,1,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "add_literals" (formula "16") (term "0,0,0,1,0,0,1,0,0,0,1")) -(rule "add_zero_left" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "emptyModality" (formula "16") (term "1")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "0,0,0,0") (ifseqformula "5")) -(rule "polySimp_homoEq" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "applyEq" (formula "16") (term "1,0,2,0,1,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,2,0,1,0")) -(rule "add_literals" (formula "16") (term "0,0,2,0,1,0")) -(rule "add_zero_left" (formula "16") (term "0,2,0,1,0")) -(rule "replace_known_left" (formula "16") (term "1,0") (ifseqformula "2")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "1,0,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "add_literals" (formula "16") (term "0,0,0,0")) -(rule "add_zero_left" (formula "16") (term "0,0,0")) -(rule "polySimp_pullOutFactor2" (formula "16") (term "0,0")) -(rule "add_literals" (formula "16") (term "1,0,0")) -(rule "times_zero_1" (formula "16") (term "0,0")) -(builtin "One Step Simplification" (formula "16")) -(rule "allRight" (formula "16") (inst "sk=j_0")) -(rule "orRight" (formula "16")) -(rule "orRight" (formula "16")) -(rule "inEqSimp_geqRight" (formula "17")) -(rule "times_zero_1" (formula "1") (term "1,0,0")) -(rule "add_zero_right" (formula "1") (term "0,0")) -(rule "inEqSimp_leqRight" (formula "17")) -(rule "mul_literals" (formula "1") (term "1,0,0")) -(rule "add_literals" (formula "1") (term "0,0")) -(rule "add_zero_left" (formula "1") (term "0")) -(rule "applyEq" (formula "18") (term "1,0") (ifseqformula "7")) -(rule "eqSymm" (formula "18")) -(rule "inEqSimp_sepPosMonomial0" (formula "2")) -(rule "mul_literals" (formula "2") (term "1")) -(rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "1")) -(rule "qeq_literals" (formula "2") (term "0")) -(builtin "One Step Simplification" (formula "2")) -(rule "closeFalse" (formula "2")) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement4.key b/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement4.key deleted file mode 100644 index b1cb5db35..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement4.key +++ /dev/null @@ -1,578 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:36:41 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - tmp[i]=self.data[i]; - i++; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "651") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "19") (term "1,0,1")) -(rule "eqSymm" (formula "7")) -(rule "polySimp_homoEq" (formula "19") (term "0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "mul_literals" (formula "19") (term "1,0,2,0,1,0,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "19") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "19") (term "0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "19") (term "1,0,0,1,0,0,1")) -(rule "polySimp_mulComm0" (formula "19") (term "1,0,0,1,0,0,1,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "19") (term "0,0,0,1,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "eval_order_array_access3" (formula "19") (term "1") (inst "#v1=x_1") (inst "#v2=x") (inst "#v0=x_arr")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_1")) -(rule "eval_order_array_access4" (formula "19") (term "1") (inst "#v0=x_arr_1")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr_1")) -(rule "assignment_read_attribute" (formula "19")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_array2" (formula "19")) - (branch "Normal Execution (x_arr_1 != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_to_primitive_array_component" (formula "19")) - (branch "Normal Execution (x_arr != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "applyEq" (formula "4") (term "0,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "7")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0") (ifseqformula "7")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "7")) - (rule "applyEq" (formula "10") (term "1,0") (ifseqformula "7")) - (rule "applyEq" (formula "18") (term "1,3,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "7")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "9") (term "0,0") (ifseqformula "7")) - (rule "polySimp_sepPosMonomial" (formula "18") (term "0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "4")) - (rule "polySimp_mulLiterals" (formula "4") (term "0")) - (rule "polySimp_elimOne" (formula "4") (term "0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "nnf_imp2or" (formula "18") (term "0,1,0,0,1")) - (rule "nnf_notAnd" (formula "18") (term "0,0,1,0,0,1")) - (rule "inEqSimp_notLeq" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,1,0,0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "add_literals" (formula "18") (term "0,0,0,1,0,0,1,0,0,1")) - (rule "add_zero_left" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "inEqSimp_notGeq" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0,0,0,1,0,0,1")) - (rule "add_zero_right" (formula "18") (term "0,0,0,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "1,0,0,0,1,0,0,1")) - (rule "postincrement" (formula "18") (term "1")) - (rule "compound_int_cast_expression" (formula "18") (term "1") (inst "#v=x")) - (rule "variableDeclarationAssign" (formula "18") (term "1")) - (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_2")) - (rule "remove_parentheses_right" (formula "18") (term "1")) - (rule "assignmentAdditionInt" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "translateJavaAddInt" (formula "18") (term "0,1,0")) - (rule "polySimp_addComm0" (formula "18") (term "0,1,0")) - (rule "widening_identity_cast_5" (formula "18") (term "1")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "dismissNonSelectedField" (formula "18") (term "1,0,1,0,1")) - (rule "dismissNonSelectedField" (formula "18") (term "0,0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,2,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,2,0,1,0")) - (rule "add_literals" (formula "18") (term "0,0,2,0,1,0")) - (rule "add_zero_left" (formula "18") (term "0,2,0,1,0")) - (rule "applyEq" (formula "18") (term "0,0,0,0") (ifseqformula "7")) - (rule "polySimp_homoEq" (formula "18") (term "0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1") (ifseqformula "7")) - (rule "eqSymm" (formula "18") (term "1,0,1")) - (rule "applyEq" (formula "18") (term "1,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0,0")) - (rule "add_literals" (formula "18") (term "0,0,0,0,0")) - (rule "add_zero_left" (formula "18") (term "0,0,0,0")) - (rule "polySimp_pullOutFactor2" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0,0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "19") (term "0")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) - (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "5")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "19") (term "1,0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "19")) - (rule "allRight" (formula "19") (inst "sk=j_0")) - (rule "orRight" (formula "19")) - (rule "orRight" (formula "19")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0")) - (rule "inEqSimp_leqRight" (formula "19")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "1")) - (rule "polySimp_elimOne" (formula "2") (term "1")) - (rule "pullOutSelect" (formula "20") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "21")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "pullOutSelect" (formula "21") (term "0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "1") (term "1,0,0")) - (rule "inEqSimp_exactShadow3" (formula "3") (ifseqformula "4")) - (rule "mul_literals" (formula "3") (term "0,0")) - (rule "add_zero_left" (formula "3") (term "0")) - (rule "arrayLengthNotNegative" (formula "9") (term "0")) - (rule "arrayLengthIsAnInt" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "applyEq" (formula "5") (term "0") (ifseqformula "6")) - (rule "inEqSimp_sepPosMonomial1" (formula "5")) - (rule "mul_literals" (formula "5") (term "1")) - (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "10")) - (rule "leq_literals" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "j_0 = i TRUE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "3")) - (rule "hideAuxiliaryEq" (formula "3")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEq" (formula "1") (term "0,2,2,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22"))) - (rule "closeFalse" (formula "1")) - ) - (branch "j_0 = i FALSE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "2")) - (rule "hideAuxiliaryEq" (formula "2")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_right" (formula "1") (term "1,0,0") (ifseqformula "18")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "22") (term "1") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) - (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) - (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) - (rule "add_literals" (formula "17") (term "1,1,0,0")) - (rule "times_zero_1" (formula "17") (term "1,0,0")) - (rule "add_zero_right" (formula "17") (term "0,0")) - (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) - (rule "false_right" (formula "17")) - (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) - (rule "times_zero_1" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "9") (ifseqformula "1")) - (rule "leq_literals" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "6") (inst "t=j_0")) - (rule "replace_known_right" (formula "6") (term "1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "6") (term "1") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1")) - (rule "polySimp_mulComm0" (formula "6") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "6") (term "1,0,0,1")) - (rule "mul_literals" (formula "6") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "6") (term "0,0,1")) - (rule "polySimp_addComm0" (formula "6") (term "0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1")) - (rule "add_zero_right" (formula "6") (term "0,0,1")) - (rule "leq_literals" (formula "6") (term "0,1")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "6")) - (rule "qeq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "closeFalse" (formula "2")) - ) - ) - (branch "Null Reference (x_arr = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr != null, but x Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "18") (term "0") (ifseqformula "8")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "polySimp_addComm0" (formula "1") (term "0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_sepNegMonomial1" (formula "1") (term "0")) - (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) - (rule "polySimp_elimOne" (formula "1") (term "0,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0")) - (rule "mul_literals" (formula "1") (term "0,1,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0")) - (rule "polySimp_addComm1" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - ) - (branch "Null Reference (x_arr_1 = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr_1 != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "8")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "19"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement5.key b/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement5.key deleted file mode 100644 index 9fb5d1648..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseConsSortedIncreasing/Statement5.key +++ /dev/null @@ -1,472 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 14:18:57 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int i; - ( leq(Z(0(#)), i) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(i)) - = int::select(heap, tmp, arr(i))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - self.data=tmp; - }\> ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(data1_oldVal)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = int::select(heap, - data1_oldVal, - arr(k)))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(sub(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))))) - = newTop - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "594") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "18") (term "1,0,1")) -(rule "eqSymm" (formula "6")) -(rule "polySimp_elimSub" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "mul_literals" (formula "18") (term "1,0,2,0,1,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "assignment_write_attribute" (formula "18")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "6")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "18") (term "0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "16") (term "0") (ifseqformula "6")) - (rule "applyEq" (formula "3") (term "0,0,1,0,0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "6")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "9") (term "1,0") (ifseqformula "6")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "nnf_imp2or" (formula "17") (term "0,1,0,0,0,1")) - (rule "nnf_notAnd" (formula "17") (term "0,0,1,0,0,0,1")) - (rule "inEqSimp_notLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,0,0,1,0,0,1,0,0,0,1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "add_literals" (formula "17") (term "0,0,0,1,0,0,1,0,0,0,1")) - (rule "add_zero_left" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_notGeq" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "times_zero_1" (formula "17") (term "1,0,0,0,0,0,1,0,0,0,1")) - (rule "add_zero_right" (formula "17") (term "0,0,0,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "1,0,0,0,1,0,0,0,1")) - (rule "emptyModality" (formula "17") (term "1")) - (builtin "One Step Simplification" (formula "17")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "1,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,0,0")) - (rule "pullOutSelect" (formula "17") (term "0,1,1,1,0,0,0,0") (inst "selectSK=IntList_data_0")) - (rule "applyEq" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "0")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,0,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,0,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,0,0")) - (rule "applyEq" (formula "17") (term "1,0,2,0,1") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,2,0,1")) - (rule "add_literals" (formula "17") (term "0,0,2,0,1")) - (rule "add_zero_left" (formula "17") (term "0,2,0,1")) - (rule "replace_known_left" (formula "17") (term "1") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "17")) - (rule "andRight" (formula "17")) - (branch - (rule "nnf_ex2all" (formula "17")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "applyEq" (formula "2") (term "0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial1" (formula "2")) - (rule "mul_literals" (formula "2") (term "1")) - (rule "inEqSimp_subsumption1" (formula "2") (ifseqformula "6")) - (rule "leq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "allLeft" (formula "1") (inst "t=length(data1_oldVal)")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,1")) - (rule "add_zero_right" (formula "1") (term "0,1")) - (rule "leq_literals" (formula "1") (term "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch - (rule "allRight" (formula "17") (inst "sk=k_0")) - (rule "orRight" (formula "17")) - (rule "orRight" (formula "17")) - (rule "inEqSimp_geqRight" (formula "18")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepNegMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "nnf_ex2all" (formula "19")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "7") (term "0")) - (rule "arrayLengthIsAnInt" (formula "7") (term "0")) - (builtin "One Step Simplification" (formula "7")) - (rule "true_left" (formula "7")) - (rule "arrayLengthNotNegative" (formula "4") (term "0")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "5")) - (rule "inEqSimp_sepPosMonomial1" (formula "4")) - (rule "mul_literals" (formula "4") (term "1")) - (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "8")) - (rule "leq_literals" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "arrayLengthIsAnInt" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "allLeft" (formula "6") (inst "t=k_0")) - (rule "inEqSimp_commuteGeq" (formula "6") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "1,0") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1,0")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "6") (term "0,0,1,0")) - (rule "leq_literals" (formula "6") (term "0,1,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "0") (ifseqformula "2")) - (rule "qeq_literals" (formula "6") (term "0,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "allLeft" (formula "1") (inst "t=k_0")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_addComm1" (formula "1") (term "0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,1")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) - (rule "mul_literals" (formula "1") (term "0,1,1")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "4")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) - (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) - (rule "add_literals" (formula "1") (term "0,0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement3.key b/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement3.key deleted file mode 100644 index 8853c1150..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement3.key +++ /dev/null @@ -1,261 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:37:13 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - i=0; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & i = Z(0(#)) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "223") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "17") (term "1,0,1")) -(rule "eqSymm" (formula "5")) -(rule "polySimp_homoEq" (formula "17") (term "0,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "17") (term "1,0,2,0,1,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_addComm0" (formula "17") (term "0,0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm1" (formula "17") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,1,0,0,0,1")) -(rule "assignment" (formula "17") (term "1")) -(builtin "One Step Simplification" (formula "17")) -(rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "5")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "applyEq" (formula "8") (term "1,0") (ifseqformula "5")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "7") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "14") (term "0") (ifseqformula "5")) -(rule "polySimp_sepPosMonomial" (formula "16") (term "0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_sepNegMonomial" (formula "1")) -(rule "polySimp_mulLiterals" (formula "1") (term "0")) -(rule "polySimp_elimOne" (formula "1") (term "0")) -(rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) -(rule "add_literals" (formula "2") (term "0,0,2,0")) -(rule "add_zero_left" (formula "2") (term "0,2,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "nnf_imp2or" (formula "16") (term "0,1,0,0,0,1")) -(rule "nnf_notAnd" (formula "16") (term "0,0,1,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "times_zero_1" (formula "16") (term "1,0,0,0,0,0,1,0,0,0,1")) -(rule "add_zero_right" (formula "16") (term "0,0,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "1,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,1,0,0,1,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "add_literals" (formula "16") (term "0,0,0,1,0,0,1,0,0,0,1")) -(rule "add_zero_left" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "emptyModality" (formula "16") (term "1")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "0,0,0,0") (ifseqformula "5")) -(rule "polySimp_homoEq" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "applyEq" (formula "16") (term "1,0,2,0,1,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,2,0,1,0")) -(rule "add_literals" (formula "16") (term "0,0,2,0,1,0")) -(rule "add_zero_left" (formula "16") (term "0,2,0,1,0")) -(rule "replace_known_left" (formula "16") (term "1,0") (ifseqformula "2")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "1,0,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "add_literals" (formula "16") (term "0,0,0,0")) -(rule "add_zero_left" (formula "16") (term "0,0,0")) -(rule "polySimp_pullOutFactor2" (formula "16") (term "0,0")) -(rule "add_literals" (formula "16") (term "1,0,0")) -(rule "times_zero_1" (formula "16") (term "0,0")) -(builtin "One Step Simplification" (formula "16")) -(rule "allRight" (formula "16") (inst "sk=j_0")) -(rule "orRight" (formula "16")) -(rule "orRight" (formula "16")) -(rule "inEqSimp_geqRight" (formula "17")) -(rule "times_zero_1" (formula "1") (term "1,0,0")) -(rule "add_zero_right" (formula "1") (term "0,0")) -(rule "inEqSimp_leqRight" (formula "17")) -(rule "mul_literals" (formula "1") (term "1,0,0")) -(rule "add_literals" (formula "1") (term "0,0")) -(rule "add_zero_left" (formula "1") (term "0")) -(rule "applyEq" (formula "18") (term "1,0") (ifseqformula "7")) -(rule "eqSymm" (formula "18")) -(rule "inEqSimp_sepPosMonomial0" (formula "2")) -(rule "mul_literals" (formula "2") (term "1")) -(rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "1")) -(rule "qeq_literals" (formula "2") (term "0")) -(builtin "One Step Simplification" (formula "2")) -(rule "closeFalse" (formula "2")) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement4.key b/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement4.key deleted file mode 100644 index 96554be4b..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement4.key +++ /dev/null @@ -1,578 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:36:36 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - tmp[i]=self.data[i]; - i++; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "738") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "19") (term "1,0,1")) -(rule "eqSymm" (formula "7")) -(rule "polySimp_homoEq" (formula "19") (term "0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "mul_literals" (formula "19") (term "1,0,2,0,1,0,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "19") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "19") (term "0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "19") (term "1,0,0,1,0,0,1")) -(rule "polySimp_mulComm0" (formula "19") (term "1,0,0,1,0,0,1,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "19") (term "0,0,0,1,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "eval_order_array_access3" (formula "19") (term "1") (inst "#v1=x_1") (inst "#v2=x") (inst "#v0=x_arr")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_1")) -(rule "eval_order_array_access4" (formula "19") (term "1") (inst "#v0=x_arr_1")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr_1")) -(rule "assignment_read_attribute" (formula "19")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_array2" (formula "19")) - (branch "Normal Execution (x_arr_1 != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_to_primitive_array_component" (formula "19")) - (branch "Normal Execution (x_arr != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "applyEq" (formula "4") (term "0,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "7")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0") (ifseqformula "7")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "7")) - (rule "applyEq" (formula "10") (term "1,0") (ifseqformula "7")) - (rule "applyEq" (formula "18") (term "1,3,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "7")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "9") (term "0,0") (ifseqformula "7")) - (rule "polySimp_sepPosMonomial" (formula "18") (term "0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "4")) - (rule "polySimp_mulLiterals" (formula "4") (term "0")) - (rule "polySimp_elimOne" (formula "4") (term "0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "nnf_imp2or" (formula "18") (term "0,1,0,0,1")) - (rule "nnf_notAnd" (formula "18") (term "0,0,1,0,0,1")) - (rule "inEqSimp_notLeq" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,1,0,0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "add_literals" (formula "18") (term "0,0,0,1,0,0,1,0,0,1")) - (rule "add_zero_left" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "inEqSimp_notGeq" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0,0,0,1,0,0,1")) - (rule "add_zero_right" (formula "18") (term "0,0,0,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "1,0,0,0,1,0,0,1")) - (rule "postincrement" (formula "18") (term "1")) - (rule "compound_int_cast_expression" (formula "18") (term "1") (inst "#v=x")) - (rule "variableDeclarationAssign" (formula "18") (term "1")) - (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_2")) - (rule "remove_parentheses_right" (formula "18") (term "1")) - (rule "assignmentAdditionInt" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "translateJavaAddInt" (formula "18") (term "0,1,0")) - (rule "polySimp_addComm0" (formula "18") (term "0,1,0")) - (rule "widening_identity_cast_5" (formula "18") (term "1")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "dismissNonSelectedField" (formula "18") (term "1,0,1,0,1")) - (rule "dismissNonSelectedField" (formula "18") (term "0,0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,2,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,2,0,1,0")) - (rule "add_literals" (formula "18") (term "0,0,2,0,1,0")) - (rule "add_zero_left" (formula "18") (term "0,2,0,1,0")) - (rule "applyEq" (formula "18") (term "0,0,0,0") (ifseqformula "7")) - (rule "polySimp_homoEq" (formula "18") (term "0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1") (ifseqformula "7")) - (rule "eqSymm" (formula "18") (term "1,0,1")) - (rule "applyEq" (formula "18") (term "1,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0,0")) - (rule "add_literals" (formula "18") (term "0,0,0,0,0")) - (rule "add_zero_left" (formula "18") (term "0,0,0,0")) - (rule "polySimp_pullOutFactor2" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0,0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "19") (term "0")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) - (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "5")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "19") (term "1,0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "19")) - (rule "allRight" (formula "19") (inst "sk=j_0")) - (rule "orRight" (formula "19")) - (rule "orRight" (formula "19")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0")) - (rule "inEqSimp_leqRight" (formula "19")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "1")) - (rule "polySimp_elimOne" (formula "2") (term "1")) - (rule "pullOutSelect" (formula "20") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "21")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "pullOutSelect" (formula "21") (term "0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "1") (term "1,0,0")) - (rule "inEqSimp_exactShadow3" (formula "3") (ifseqformula "4")) - (rule "mul_literals" (formula "3") (term "0,0")) - (rule "add_zero_left" (formula "3") (term "0")) - (rule "arrayLengthNotNegative" (formula "9") (term "0")) - (rule "arrayLengthIsAnInt" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "applyEq" (formula "5") (term "0") (ifseqformula "6")) - (rule "inEqSimp_sepPosMonomial1" (formula "5")) - (rule "mul_literals" (formula "5") (term "1")) - (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "10")) - (rule "leq_literals" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "j_0 = i TRUE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "3")) - (rule "hideAuxiliaryEq" (formula "3")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEq" (formula "1") (term "0,2,2,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22"))) - (rule "closeFalse" (formula "1")) - ) - (branch "j_0 = i FALSE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "2")) - (rule "hideAuxiliaryEq" (formula "2")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_right" (formula "1") (term "1,0,0") (ifseqformula "18")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "22") (term "1") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) - (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) - (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) - (rule "add_literals" (formula "17") (term "1,1,0,0")) - (rule "times_zero_1" (formula "17") (term "1,0,0")) - (rule "add_zero_right" (formula "17") (term "0,0")) - (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) - (rule "false_right" (formula "17")) - (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) - (rule "times_zero_1" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "9") (ifseqformula "1")) - (rule "leq_literals" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "6") (inst "t=j_0")) - (rule "replace_known_right" (formula "6") (term "1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "6") (term "1") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1")) - (rule "polySimp_mulComm0" (formula "6") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "6") (term "1,0,0,1")) - (rule "mul_literals" (formula "6") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "6") (term "0,0,1")) - (rule "polySimp_addComm0" (formula "6") (term "0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1")) - (rule "add_zero_right" (formula "6") (term "0,0,1")) - (rule "leq_literals" (formula "6") (term "0,1")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "6")) - (rule "qeq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "closeFalse" (formula "2")) - ) - ) - (branch "Null Reference (x_arr = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr != null, but x Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "18") (term "0") (ifseqformula "8")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "polySimp_addComm0" (formula "1") (term "0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_sepNegMonomial1" (formula "1") (term "0")) - (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) - (rule "polySimp_elimOne" (formula "1") (term "0,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0")) - (rule "mul_literals" (formula "1") (term "0,1,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0")) - (rule "polySimp_addComm1" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - ) - (branch "Null Reference (x_arr_1 = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr_1 != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "8")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "19"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement5.key b/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement5.key deleted file mode 100644 index 24a761b7d..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseSortedDecreasing/Statement5.key +++ /dev/null @@ -1,472 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 14:18:41 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int i; - ( leq(Z(0(#)), i) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(i)) - = int::select(heap, tmp, arr(i))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - self.data=tmp; - }\> ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(data1_oldVal)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = int::select(heap, - data1_oldVal, - arr(k)))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(sub(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))))) - = newTop - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "620") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "18") (term "1,0,1")) -(rule "eqSymm" (formula "6")) -(rule "polySimp_elimSub" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "mul_literals" (formula "18") (term "1,0,2,0,1,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "assignment_write_attribute" (formula "18")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "6")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "18") (term "0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "16") (term "0") (ifseqformula "6")) - (rule "applyEq" (formula "3") (term "0,0,1,0,0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "6")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "9") (term "1,0") (ifseqformula "6")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "nnf_imp2or" (formula "17") (term "0,1,0,0,0,1")) - (rule "nnf_notAnd" (formula "17") (term "0,0,1,0,0,0,1")) - (rule "inEqSimp_notLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,0,0,1,0,0,1,0,0,0,1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "add_literals" (formula "17") (term "0,0,0,1,0,0,1,0,0,0,1")) - (rule "add_zero_left" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_notGeq" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "times_zero_1" (formula "17") (term "1,0,0,0,0,0,1,0,0,0,1")) - (rule "add_zero_right" (formula "17") (term "0,0,0,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "1,0,0,0,1,0,0,0,1")) - (rule "emptyModality" (formula "17") (term "1")) - (builtin "One Step Simplification" (formula "17")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "1,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,0,0")) - (rule "pullOutSelect" (formula "17") (term "0,1,1,1,0,0,0,0") (inst "selectSK=IntList_data_0")) - (rule "applyEq" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "0")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,0,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,0,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,0,0")) - (rule "applyEq" (formula "17") (term "1,0,2,0,1") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,2,0,1")) - (rule "add_literals" (formula "17") (term "0,0,2,0,1")) - (rule "add_zero_left" (formula "17") (term "0,2,0,1")) - (rule "replace_known_left" (formula "17") (term "1") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "17")) - (rule "andRight" (formula "17")) - (branch - (rule "nnf_ex2all" (formula "17")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "applyEq" (formula "2") (term "0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial1" (formula "2")) - (rule "mul_literals" (formula "2") (term "1")) - (rule "inEqSimp_subsumption1" (formula "2") (ifseqformula "6")) - (rule "leq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "allLeft" (formula "1") (inst "t=length(data1_oldVal)")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,1")) - (rule "add_zero_right" (formula "1") (term "0,1")) - (rule "leq_literals" (formula "1") (term "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch - (rule "allRight" (formula "17") (inst "sk=k_0")) - (rule "orRight" (formula "17")) - (rule "orRight" (formula "17")) - (rule "inEqSimp_geqRight" (formula "18")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepNegMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "nnf_ex2all" (formula "19")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "7") (term "0")) - (rule "arrayLengthIsAnInt" (formula "7") (term "0")) - (builtin "One Step Simplification" (formula "7")) - (rule "true_left" (formula "7")) - (rule "arrayLengthNotNegative" (formula "4") (term "0")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "5")) - (rule "inEqSimp_sepPosMonomial1" (formula "4")) - (rule "mul_literals" (formula "4") (term "1")) - (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "8")) - (rule "leq_literals" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "arrayLengthIsAnInt" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "allLeft" (formula "6") (inst "t=k_0")) - (rule "inEqSimp_commuteGeq" (formula "6") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "1,0") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1,0")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "6") (term "0,0,1,0")) - (rule "leq_literals" (formula "6") (term "0,1,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "0") (ifseqformula "2")) - (rule "qeq_literals" (formula "6") (term "0,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "allLeft" (formula "1") (inst "t=k_0")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_addComm1" (formula "1") (term "0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,1")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) - (rule "mul_literals" (formula "1") (term "0,1,1")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "4")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) - (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) - (rule "add_literals" (formula "1") (term "0,0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement3.key b/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement3.key deleted file mode 100644 index 076748c5b..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement3.key +++ /dev/null @@ -1,261 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:37:16 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - i=0; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & i = Z(0(#)) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "208") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "17") (term "1,0,1")) -(rule "eqSymm" (formula "5")) -(rule "polySimp_homoEq" (formula "17") (term "0,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "17") (term "1,0,2,0,1,0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_addComm0" (formula "17") (term "0,0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "17") (term "0,2,0,1,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm1" (formula "17") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "17") (term "0,0,0,1,0,0,0,1")) -(rule "assignment" (formula "17") (term "1")) -(builtin "One Step Simplification" (formula "17")) -(rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "5")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "applyEq" (formula "8") (term "1,0") (ifseqformula "5")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "7") (term "0,0") (ifseqformula "5")) -(rule "applyEq" (formula "14") (term "0") (ifseqformula "5")) -(rule "polySimp_sepPosMonomial" (formula "16") (term "0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_sepNegMonomial" (formula "1")) -(rule "polySimp_mulLiterals" (formula "1") (term "0")) -(rule "polySimp_elimOne" (formula "1") (term "0")) -(rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) -(rule "add_literals" (formula "2") (term "0,0,2,0")) -(rule "add_zero_left" (formula "2") (term "0,2,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,1,0,0,1,0,0,0,1")) -(rule "nnf_imp2or" (formula "16") (term "0,1,0,0,0,1")) -(rule "nnf_notAnd" (formula "16") (term "0,0,1,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "times_zero_1" (formula "16") (term "1,0,0,0,0,0,1,0,0,0,1")) -(rule "add_zero_right" (formula "16") (term "0,0,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "16") (term "0,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "1,0,0,0,1,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_rightDist" (formula "16") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "mul_literals" (formula "16") (term "0,1,0,0,1,0,0,1,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "add_literals" (formula "16") (term "0,0,0,1,0,0,1,0,0,0,1")) -(rule "add_zero_left" (formula "16") (term "0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "16") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "polySimp_elimOne" (formula "16") (term "1,1,0,0,1,0,0,0,1")) -(rule "emptyModality" (formula "16") (term "1")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "0,0,0,0") (ifseqformula "5")) -(rule "polySimp_homoEq" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "applyEq" (formula "16") (term "1,0,2,0,1,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,2,0,1,0")) -(rule "add_literals" (formula "16") (term "0,0,2,0,1,0")) -(rule "add_zero_left" (formula "16") (term "0,2,0,1,0")) -(rule "replace_known_left" (formula "16") (term "1,0") (ifseqformula "2")) -(builtin "One Step Simplification" (formula "16")) -(rule "applyEq" (formula "16") (term "1,0,0") (ifseqformula "1")) -(rule "polySimp_addAssoc" (formula "16") (term "0,0")) -(rule "polySimp_addComm1" (formula "16") (term "0,0,0")) -(rule "add_literals" (formula "16") (term "0,0,0,0")) -(rule "add_zero_left" (formula "16") (term "0,0,0")) -(rule "polySimp_pullOutFactor2" (formula "16") (term "0,0")) -(rule "add_literals" (formula "16") (term "1,0,0")) -(rule "times_zero_1" (formula "16") (term "0,0")) -(builtin "One Step Simplification" (formula "16")) -(rule "allRight" (formula "16") (inst "sk=j_0")) -(rule "orRight" (formula "16")) -(rule "orRight" (formula "16")) -(rule "inEqSimp_geqRight" (formula "17")) -(rule "times_zero_1" (formula "1") (term "1,0,0")) -(rule "add_zero_right" (formula "1") (term "0,0")) -(rule "inEqSimp_leqRight" (formula "17")) -(rule "mul_literals" (formula "1") (term "1,0,0")) -(rule "add_literals" (formula "1") (term "0,0")) -(rule "add_zero_left" (formula "1") (term "0")) -(rule "applyEq" (formula "18") (term "1,0") (ifseqformula "7")) -(rule "eqSymm" (formula "18")) -(rule "inEqSimp_sepPosMonomial0" (formula "2")) -(rule "mul_literals" (formula "2") (term "1")) -(rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "1")) -(rule "qeq_literals" (formula "2") (term "0")) -(builtin "One Step Simplification" (formula "2")) -(rule "closeFalse" (formula "2")) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement4.key b/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement4.key deleted file mode 100644 index 177b8e368..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement4.key +++ /dev/null @@ -1,578 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 12:36:38 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - tmp[i]=self.data[i]; - i++; - }\> ( length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), - Z(1(#))))) - = newTop - & \forall int j; - ( leq(Z(0(#)), j) & lt(j, i) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(j)) - = int::select(heap, tmp, arr(j))) - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "789") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "19") (term "1,0,1")) -(rule "eqSymm" (formula "7")) -(rule "polySimp_homoEq" (formula "19") (term "0,0,0,0,1")) -(rule "polySimp_elimSub" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "mul_literals" (formula "19") (term "1,0,2,0,1,0,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "19") (term "0,0,0,0,0,0,1")) -(rule "polySimp_addComm0" (formula "19") (term "0,2,0,1,0,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "19") (term "0,0,0,0,0,1")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "19") (term "1,0,0,1,0,0,1")) -(rule "polySimp_mulComm0" (formula "19") (term "1,0,0,1,0,0,1,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1,0,0")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "19") (term "0,0,0,1,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "eval_order_array_access3" (formula "19") (term "1") (inst "#v1=x_1") (inst "#v2=x") (inst "#v0=x_arr")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x")) -(rule "assignment" (formula "19") (term "1")) -(builtin "One Step Simplification" (formula "19")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_1")) -(rule "eval_order_array_access4" (formula "19") (term "1") (inst "#v0=x_arr_1")) -(rule "variableDeclarationAssign" (formula "19") (term "1")) -(rule "variableDeclaration" (formula "19") (term "1") (newnames "x_arr_1")) -(rule "assignment_read_attribute" (formula "19")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_array2" (formula "19")) - (branch "Normal Execution (x_arr_1 != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "assignment_to_primitive_array_component" (formula "19")) - (branch "Normal Execution (x_arr != null)" - (builtin "One Step Simplification" (formula "19")) - (rule "applyEq" (formula "4") (term "0,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "7")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0") (ifseqformula "7")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "7")) - (rule "applyEq" (formula "10") (term "1,0") (ifseqformula "7")) - (rule "applyEq" (formula "18") (term "1,3,0,1,0") (ifseqformula "7")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "7")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "9") (term "0,0") (ifseqformula "7")) - (rule "polySimp_sepPosMonomial" (formula "18") (term "0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,0,0,1")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulComm0" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "4")) - (rule "polySimp_mulLiterals" (formula "4") (term "0")) - (rule "polySimp_elimOne" (formula "4") (term "0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "nnf_imp2or" (formula "18") (term "0,1,0,0,1")) - (rule "nnf_notAnd" (formula "18") (term "0,0,1,0,0,1")) - (rule "inEqSimp_notLeq" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_rightDist" (formula "18") (term "1,0,0,1,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "0,1,0,0,1,0,0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "add_literals" (formula "18") (term "0,0,0,1,0,0,1,0,0,1")) - (rule "add_zero_left" (formula "18") (term "0,0,1,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "18") (term "1,0,0,1,0,0,1")) - (rule "polySimp_mulLiterals" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "polySimp_elimOne" (formula "18") (term "1,1,0,0,1,0,0,1")) - (rule "inEqSimp_notGeq" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0,0,0,1,0,0,1")) - (rule "add_zero_right" (formula "18") (term "0,0,0,0,0,1,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "18") (term "0,0,0,1,0,0,1")) - (rule "mul_literals" (formula "18") (term "1,0,0,0,1,0,0,1")) - (rule "postincrement" (formula "18") (term "1")) - (rule "compound_int_cast_expression" (formula "18") (term "1") (inst "#v=x")) - (rule "variableDeclarationAssign" (formula "18") (term "1")) - (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_2")) - (rule "remove_parentheses_right" (formula "18") (term "1")) - (rule "assignmentAdditionInt" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "translateJavaAddInt" (formula "18") (term "0,1,0")) - (rule "polySimp_addComm0" (formula "18") (term "0,1,0")) - (rule "widening_identity_cast_5" (formula "18") (term "1")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "dismissNonSelectedField" (formula "18") (term "1,0,1,0,1")) - (rule "dismissNonSelectedField" (formula "18") (term "0,0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,2,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,2,0,1,0")) - (rule "add_literals" (formula "18") (term "0,0,2,0,1,0")) - (rule "add_zero_left" (formula "18") (term "0,2,0,1,0")) - (rule "applyEq" (formula "18") (term "0,0,0,0") (ifseqformula "7")) - (rule "polySimp_homoEq" (formula "18") (term "0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1") (ifseqformula "7")) - (rule "eqSymm" (formula "18") (term "1,0,1")) - (rule "applyEq" (formula "18") (term "1,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "18") (term "0,0,0")) - (rule "polySimp_addComm1" (formula "18") (term "0,0,0,0")) - (rule "add_literals" (formula "18") (term "0,0,0,0,0")) - (rule "add_zero_left" (formula "18") (term "0,0,0,0")) - (rule "polySimp_pullOutFactor2" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0,0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "19") (term "0")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) - (rule "inEqSimp_contradEq7" (formula "1") (term "0,0") (ifseqformula "5")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "19") (term "1,0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "19")) - (rule "allRight" (formula "19") (inst "sk=j_0")) - (rule "orRight" (formula "19")) - (rule "orRight" (formula "19")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0")) - (rule "inEqSimp_leqRight" (formula "19")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "1")) - (rule "polySimp_elimOne" (formula "2") (term "1")) - (rule "pullOutSelect" (formula "20") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "21")) - (rule "eqSymm" (formula "1") (term "0,0")) - (rule "pullOutSelect" (formula "21") (term "0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "1,0")) - (rule "eqSymm" (formula "1") (term "1,0,0")) - (rule "inEqSimp_exactShadow3" (formula "3") (ifseqformula "4")) - (rule "mul_literals" (formula "3") (term "0,0")) - (rule "add_zero_left" (formula "3") (term "0")) - (rule "arrayLengthNotNegative" (formula "9") (term "0")) - (rule "arrayLengthIsAnInt" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "applyEq" (formula "5") (term "0") (ifseqformula "6")) - (rule "inEqSimp_sepPosMonomial1" (formula "5")) - (rule "mul_literals" (formula "5") (term "1")) - (rule "inEqSimp_subsumption1" (formula "5") (ifseqformula "10")) - (rule "leq_literals" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ifthenelse_split" (formula "2") (term "0")) - (branch "j_0 = i TRUE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "3")) - (rule "hideAuxiliaryEq" (formula "3")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEq" (formula "1") (term "0,2,2,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "22"))) - (rule "closeFalse" (formula "1")) - ) - (branch "j_0 = i FALSE" - (rule "applyEqReverse" (formula "23") (term "1") (ifseqformula "2")) - (rule "hideAuxiliaryEq" (formula "2")) - (rule "eqSymm" (formula "22")) - (rule "replace_known_right" (formula "1") (term "1,0,0") (ifseqformula "18")) - (builtin "One Step Simplification" (formula "1")) - (rule "applyEqReverse" (formula "22") (term "1") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) - (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) - (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) - (rule "add_literals" (formula "17") (term "1,1,0,0")) - (rule "times_zero_1" (formula "17") (term "1,0,0")) - (rule "add_zero_right" (formula "17") (term "0,0")) - (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) - (rule "false_right" (formula "17")) - (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) - (rule "times_zero_1" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "9") (ifseqformula "1")) - (rule "leq_literals" (formula "9") (term "0")) - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "6") (inst "t=j_0")) - (rule "replace_known_right" (formula "6") (term "1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "6") (term "1") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1")) - (rule "polySimp_mulComm0" (formula "6") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "6") (term "1,0,0,1")) - (rule "mul_literals" (formula "6") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "6") (term "0,0,1")) - (rule "polySimp_addComm0" (formula "6") (term "0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1")) - (rule "add_zero_right" (formula "6") (term "0,0,1")) - (rule "leq_literals" (formula "6") (term "0,1")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "6")) - (rule "qeq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "closeFalse" (formula "2")) - ) - ) - (branch "Null Reference (x_arr = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr != null, but x Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "18") (term "0") (ifseqformula "8")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "applyEq" (formula "1") (term "0,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq0" (formula "1") (term "0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0")) - (rule "polySimp_addComm0" (formula "1") (term "0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_sepNegMonomial1" (formula "1") (term "0")) - (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) - (rule "polySimp_elimOne" (formula "1") (term "0,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0")) - (rule "mul_literals" (formula "1") (term "0,1,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0")) - (rule "polySimp_addComm1" (formula "1") (term "0,0")) - (rule "add_literals" (formula "1") (term "0,0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - ) - (branch "Null Reference (x_arr_1 = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) - ) - (branch "Index Out of Bounds (x_arr_1 != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "false_right" (formula "20")) - (rule "inEqSimp_ltToLeq" (formula "1") (term "1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "applyEq" (formula "5") (term "0,0,1,0") (ifseqformula "8")) - (rule "applyEq" (formula "2") (term "0,1,0") (ifseqformula "8")) - (rule "polySimp_addComm1" (formula "2") (term "0")) - (rule "applyEq" (formula "4") (term "1,0,1,0") (ifseqformula "8")) - (rule "eqSymm" (formula "4") (term "1,0")) - (rule "applyEq" (formula "10") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "1") (term "0,0,0") (ifseqformula "8")) - (rule "applyEq" (formula "6") (term "0,0") (ifseqformula "8")) - (rule "applyEq" (formula "11") (term "1,0") (ifseqformula "8")) - (rule "applyEq" (formula "17") (term "0") (ifseqformula "8")) - (rule "polySimp_sepNegMonomial" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "applyEq" (formula "3") (term "1,0,2,0") (ifseqformula "2")) - (rule "polySimp_addAssoc" (formula "3") (term "0,2,0")) - (rule "add_literals" (formula "3") (term "0,0,2,0")) - (rule "add_zero_left" (formula "3") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "4") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "4") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "4") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "4") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "4") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "4") (term "1,1,1,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "mul_literals" (formula "1") (term "1,1")) - (rule "inEqSimp_sepNegMonomial0" (formula "5")) - (rule "polySimp_mulLiterals" (formula "5") (term "0")) - (rule "polySimp_elimOne" (formula "5") (term "0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "7")) - (rule "qeq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "5")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "19"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement5.key b/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement5.key deleted file mode 100644 index 4f35883de..000000000 --- a/IntegerList/features/Base/IntList/provepush/BaseSortedIncreasing/Statement5.key +++ /dev/null @@ -1,472 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Tue Aug 23 14:18:45 CEST 2022 -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=2147483647 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} - -\javaSource "C:/Users/mko/Documents/ISF/0_feat-CorC2.0modifiable/runtime-EclipseApplication/IntegerList";\include "helper.key";\programVariables {int i; int[] tmp; int newTop; int newTop_old; int[] data1_oldVal; IntList self; Heap heapAtPre;}\problem { - length(tmp) - = add(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))) - & int::select(heap, - tmp, - arr(sub(length(tmp), Z(1(#))))) - = newTop - & \forall int i; - ( leq(Z(0(#)), i) - & lt(i, - length(int[]::select(heap, - self, - IntList::$data))) - -> int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(i)) - = int::select(heap, tmp, arr(i))) - & !int[]::select(heap, self, IntList::$data) = null - & geq(length(int[]::select(heap, - self, - IntList::$data)), - Z(0(#))) - & geq(i, Z(0(#))) - & data1_oldVal - = int[]::select(heap, self, IntList::$data) - & !tmp = null - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & int[]::exactInstance(int[]::select(heap, - self, - IntList::$data)) - = TRUE - & boolean::select(heap, - int[]::select(heap, - self, - IntList::$data), - java.lang.Object::) - = TRUE - & !int[]::select(heap, self, IntList::$data) = null - & boolean::select(heap, - data1_oldVal, - java.lang.Object::) - = TRUE - & boolean::select(heap, - self, - java.lang.Object::) - = TRUE - & IntList::exactInstance(self) = TRUE - & !self = null - & java.lang.Object::(heap, self) - & wellFormed(heap) --> {heapAtPre:=heap - || newTop_old:=newTop - || data1_oldVal:=int[]::select(heap, - self, - IntList::$data)} - \<{ - self.data=tmp; - }\> ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(data1_oldVal)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, - length(int[]::select(heap, - self, - IntList::$data))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(z)) - = int::select(heap, - data1_oldVal, - arr(k)))) - & int::select(heap, - int[]::select(heap, - self, - IntList::$data), - arr(sub(length(int[]::select(heap, - self, - IntList::$data)), - Z(1(#))))) - = newTop - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "643") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "eqSymm" (formula "18") (term "1,0,1")) -(rule "eqSymm" (formula "6")) -(rule "polySimp_elimSub" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "mul_literals" (formula "18") (term "1,0,2,0,1,0,0,1")) -(rule "polySimp_homoEq" (formula "1")) -(rule "polySimp_elimSub" (formula "2") (term "0,2,0")) -(rule "mul_literals" (formula "2") (term "1,0,2,0")) -(rule "polySimp_addComm0" (formula "18") (term "0,2,0,1,0,0,1")) -(rule "polySimp_addComm0" (formula "1") (term "0,0")) -(rule "polySimp_addComm0" (formula "2") (term "0,2,0")) -(rule "polySimp_addComm1" (formula "1") (term "0")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "18") (term "1,0,0,1,0,1,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "18") (term "1,0,0,1,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "3") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "18") (term "0,0,0,1,0,1,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "3") (term "0,0,0")) -(rule "assignment_write_attribute" (formula "18")) -(branch "Normal Execution (self != null)" - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "3") (term "1,0,1,0") (ifseqformula "6")) - (rule "eqSymm" (formula "3") (term "1,0")) - (rule "applyEq" (formula "18") (term "0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "16") (term "0") (ifseqformula "6")) - (rule "applyEq" (formula "3") (term "0,0,1,0,0,1,0,0") (ifseqformula "6")) - (rule "applyEq" (formula "1") (term "0,1,0") (ifseqformula "6")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "6")) - (rule "applyEq" (formula "9") (term "1,0") (ifseqformula "6")) - (rule "polySimp_sepNegMonomial" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "applyEq" (formula "2") (term "1,0,2,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "2") (term "0,2,0")) - (rule "add_literals" (formula "2") (term "0,0,2,0")) - (rule "add_zero_left" (formula "2") (term "0,2,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,0,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,0,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,0,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulComm0" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "3") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,1,0,0")) - (rule "nnf_imp2or" (formula "3") (term "0")) - (rule "nnf_notAnd" (formula "3") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) - (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "3") (term "0,0,0")) - (rule "mul_literals" (formula "3") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "3") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "3") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "3") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "3") (term "0,0,1,0,0")) - (rule "add_literals" (formula "3") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "3") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "3") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "3") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "3") (term "1,1,0,0")) - (rule "nnf_imp2or" (formula "17") (term "0,1,0,0,0,1")) - (rule "nnf_notAnd" (formula "17") (term "0,0,1,0,0,0,1")) - (rule "inEqSimp_notLeq" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_rightDist" (formula "17") (term "1,0,0,1,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "0,1,0,0,1,0,0,1,0,0,0,1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "add_literals" (formula "17") (term "0,0,0,1,0,0,1,0,0,0,1")) - (rule "add_zero_left" (formula "17") (term "0,0,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "17") (term "1,0,0,1,0,0,0,1")) - (rule "polySimp_mulLiterals" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "polySimp_elimOne" (formula "17") (term "1,1,0,0,1,0,0,0,1")) - (rule "inEqSimp_notGeq" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "times_zero_1" (formula "17") (term "1,0,0,0,0,0,1,0,0,0,1")) - (rule "add_zero_right" (formula "17") (term "0,0,0,0,0,1,0,0,0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "17") (term "0,0,0,1,0,0,0,1")) - (rule "mul_literals" (formula "17") (term "1,0,0,0,1,0,0,0,1")) - (rule "emptyModality" (formula "17") (term "1")) - (builtin "One Step Simplification" (formula "17")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "1,1,0,1,0,1,0")) - (rule "dismissNonSelectedField" (formula "17") (term "0,1,0,0,0")) - (rule "pullOutSelect" (formula "17") (term "0,1,1,1,0,0,0,0") (inst "selectSK=IntList_data_0")) - (rule "applyEq" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEq" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "castDel" (formula "1") (term "0")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,0,2,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "0,1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1") (ifseqformula "1")) - (rule "applyEqReverse" (formula "18") (term "1,0,1,0,0,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,1,0,1,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,1,0,1,0")) - (rule "applyEq" (formula "17") (term "1,1,1,0,0,0,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "1,1,0,0,0,0")) - (rule "add_literals" (formula "17") (term "0,1,1,0,0,0,0")) - (rule "add_zero_left" (formula "17") (term "1,1,0,0,0,0")) - (rule "applyEq" (formula "17") (term "1,0,2,0,1") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "17") (term "0,2,0,1")) - (rule "add_literals" (formula "17") (term "0,0,2,0,1")) - (rule "add_zero_left" (formula "17") (term "0,2,0,1")) - (rule "replace_known_left" (formula "17") (term "1") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "17")) - (rule "andRight" (formula "17")) - (branch - (rule "nnf_ex2all" (formula "17")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "applyEq" (formula "2") (term "0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial1" (formula "2")) - (rule "mul_literals" (formula "2") (term "1")) - (rule "inEqSimp_subsumption1" (formula "2") (ifseqformula "6")) - (rule "leq_literals" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "allLeft" (formula "1") (inst "t=length(data1_oldVal)")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,1")) - (rule "add_zero_right" (formula "1") (term "0,1")) - (rule "leq_literals" (formula "1") (term "1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch - (rule "allRight" (formula "17") (inst "sk=k_0")) - (rule "orRight" (formula "17")) - (rule "orRight" (formula "17")) - (rule "inEqSimp_geqRight" (formula "18")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_sepNegMonomial0" (formula "2")) - (rule "polySimp_mulLiterals" (formula "2") (term "0")) - (rule "polySimp_elimOne" (formula "2") (term "0")) - (rule "nnf_ex2all" (formula "19")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "7") (term "0")) - (rule "arrayLengthIsAnInt" (formula "7") (term "0")) - (builtin "One Step Simplification" (formula "7")) - (rule "true_left" (formula "7")) - (rule "arrayLengthNotNegative" (formula "4") (term "0")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "5")) - (rule "inEqSimp_sepPosMonomial1" (formula "4")) - (rule "mul_literals" (formula "4") (term "1")) - (rule "inEqSimp_subsumption1" (formula "4") (ifseqformula "8")) - (rule "leq_literals" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "arrayLengthIsAnInt" (formula "4") (term "0")) - (builtin "One Step Simplification" (formula "4")) - (rule "true_left" (formula "4")) - (rule "allLeft" (formula "6") (inst "t=k_0")) - (rule "inEqSimp_commuteGeq" (formula "6") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "1,0") (ifseqformula "3")) - (rule "inEqSimp_homoInEq1" (formula "6") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "6") (term "0,0,1,0")) - (rule "add_literals" (formula "6") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "6") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "6") (term "0,0,1,0")) - (rule "leq_literals" (formula "6") (term "0,1,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "inEqSimp_contradInEq1" (formula "6") (term "0") (ifseqformula "2")) - (rule "qeq_literals" (formula "6") (term "0,0")) - (builtin "One Step Simplification" (formula "6")) - (rule "allLeft" (formula "1") (inst "t=k_0")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "1")) - (rule "polySimp_addComm1" (formula "1") (term "0,1")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,1")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,1")) - (rule "mul_literals" (formula "1") (term "0,1,1")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "4")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0,1")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1")) - (rule "polySimp_addComm1" (formula "1") (term "0,0,0,1")) - (rule "add_literals" (formula "1") (term "0,0,0,0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Null Reference (self = null)" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "18"))) - (rule "closeFalse" (formula "1")) -) -) - -} diff --git a/IntegerList/features/Base/diagram/Push.cbcmodel b/IntegerList/features/Base/diagram/Push.cbcmodel deleted file mode 100644 index 079ec6bd0..000000000 --- a/IntegerList/features/Base/diagram/Push.cbcmodel +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Base/diagram/Push.diagram b/IntegerList/features/Base/diagram/Push.diagram deleted file mode 100644 index 8b3824a65..000000000 --- a/IntegerList/features/Base/diagram/Push.diagram +++ /dev/null @@ -1,3759 +0,0 @@ -<<<<<<< HEAD:IntegerList/features/Base/diagram/Push.diagram - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -======= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->>>>>>> remotes/origin/ClassConnection:EvaluationIntList/src/diagram/PushBase.diagram diff --git a/IntegerList/features/Base/provePush/helper.key b/IntegerList/features/Base/provePush/helper.key deleted file mode 100644 index e69de29bb..000000000 diff --git a/IntegerList/features/Base/provePush/prove0.key b/IntegerList/features/Base/provePush/prove0.key deleted file mode 100644 index c7f5d333e..000000000 --- a/IntegerList/features/Base/provePush/prove0.key +++ /dev/null @@ -1,217 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Thu Apr 16 16:02:50 CEST 2020 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]useUninterpretedMultiplication=true -[SMTSettings]SelectedTaclets= -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[Strategy]Timeout=-1 -[Strategy]MaximumNumberOfAutomaticApplications=20000 -[SMTSettings]integersMaximum=2147483645 -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]maxGenericSorts=2 -[SMTSettings]integersMinimum=-2147483645 -[SMTSettings]invariantForall=false -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -" -} - -\javaSource "C:/bachelor/redmine/Fallbeispiele/IntegerList";\include "helper.key";\programVariables {int[] data; int[] old_data; int[] tmp; int i; int newTop; Heap heapAtPre;}\problem { - true - & !data = null - & geq(length(data), Z(0(#))) - & geq(i, Z(0(#))) - & old_data = data - & !tmp = null - & boolean::select(heap, - data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - tmp, - java.lang.Object::) - = TRUE - & wellFormed(heap) --> {heapAtPre:=heap} - \<{ - tmp=new int[data.length+1]; - }\> length(tmp) = add(length(data), Z(1(#))) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "388") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "3")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "1")) -(rule "polySimp_addComm0" (formula "10") (term "1,0")) -(rule "applyEq" (formula "5") (term "1,0") (ifseqformula "3")) -(rule "arrayCreation" (formula "9") (inst "#v0=x_arr")) -(rule "variableDeclaration" (formula "9") (newnames "x_arr")) -(rule "variableDeclarationAssign" (formula "9")) -(rule "variableDeclaration" (formula "9") (newnames "dim0")) -(rule "compound_addition_1" (formula "9") (inst "#v=x")) -(rule "variableDeclarationAssign" (formula "9")) -(rule "variableDeclaration" (formula "9") (newnames "x")) -(rule "assignment_read_length" (formula "9")) -(branch "Normal Execution (data != null)" - (rule "assignmentAdditionInt" (formula "9") (term "1")) - (builtin "One Step Simplification" (formula "9")) - (rule "translateJavaAddInt" (formula "9") (term "0,0")) - (rule "polySimp_addComm0" (formula "9") (term "0,0")) - (rule "ifUnfold" (formula "9") (term "1") (inst "#boolv=x")) - (rule "variableDeclaration" (formula "9") (term "1") (newnames "x_1")) - (rule "less_than_comparison_simple" (formula "9") (term "1")) - (builtin "One Step Simplification" (formula "9")) - (rule "inEqSimp_ltToLeq" (formula "9") (term "0,0,1,0")) - (rule "times_zero_1" (formula "9") (term "1,0,0,0,0,1,0")) - (rule "add_zero_right" (formula "9") (term "0,0,0,0,1,0")) - (rule "polySimp_addAssoc" (formula "9") (term "0,0,0,1,0")) - (rule "add_literals" (formula "9") (term "0,0,0,0,1,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "9") (term "0,0,1,0")) - (rule "mul_literals" (formula "9") (term "1,0,0,1,0")) - (rule "inEqSimp_contradInEq1" (formula "9") (term "0,0,1,0") (ifseqformula "1")) - (rule "qeq_literals" (formula "9") (term "0,0,0,1,0")) - (builtin "One Step Simplification" (formula "9")) - (rule "ifSplit" (formula "9")) - (branch "if x_1 true" - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) - (branch "if x_1 false" - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "1")) - (rule "true_left" (formula "1")) - (rule "arrayLengthNotNegative" (formula "1") (term "0")) - (rule "arrayLengthIsAnInt" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "true_left" (formula "1")) - (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "9") (term "1") (inst "#v0=x_arr_1")) - (rule "variableDeclaration" (formula "9") (term "1") (newnames "x_arr_1")) - (rule "variableDeclarationAssign" (formula "9") (term "1")) - (rule "variableDeclaration" (formula "9") (term "1") (newnames "length_1")) - (rule "assignment" (formula "9") (term "1")) - (builtin "One Step Simplification" (formula "9")) - (rule "methodBodyExpand" (formula "9") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "9")) - (rule "variableDeclaration" (formula "9") (term "1") (newnames "newObject")) - (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "9") (term "1") (inst "#v0=x_arr_2")) - (rule "variableDeclaration" (formula "9") (term "1") (newnames "x_arr_2")) - (rule "variableDeclarationAssign" (formula "9") (term "1")) - (rule "variableDeclaration" (formula "9") (term "1") (newnames "length_2")) - (rule "assignment" (formula "9") (term "1")) - (builtin "One Step Simplification" (formula "9")) - (rule "allocateInstanceWithLength" (formula "9")) - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "7"))) - (rule "andLeft" (formula "1")) - (rule "andLeft" (formula "1")) - (rule "andLeft" (formula "2")) - (rule "notLeft" (formula "1")) - (rule "notLeft" (formula "1")) - (rule "blockEmpty" (formula "13") (term "1")) - (rule "assignment" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) - (rule "arrayLengthNotNegative" (formula "1") (term "0")) - (rule "applyEq" (formula "1") (term "0") (ifseqformula "2")) - (rule "inEqSimp_sepPosMonomial1" (formula "1")) - (rule "mul_literals" (formula "1") (term "1")) - (rule "inEqSimp_subsumption1" (formula "1") (ifseqformula "4")) - (rule "leq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "true_left" (formula "1")) - (rule "arrayLengthIsAnInt" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "true_left" (formula "1")) - (rule "methodCall" (formula "13")) - (branch "Normal Execution (newObject != null )" - (rule "methodBodyExpand" (formula "13") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "13")) - (rule "assignment_write_attribute_this" (formula "13")) - (builtin "One Step Simplification" (formula "13")) - (rule "methodCallWithinClass" (formula "13") (term "1")) - (rule "methodBodyExpand" (formula "13") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "13")) - (rule "arrayInitialisation" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) - (rule "polySimp_elimSub" (formula "13") (term "2,1,0,1,0")) - (rule "mul_literals" (formula "13") (term "1,2,1,0,1,0")) - (rule "polySimp_addComm0" (formula "13") (term "2,1,0,1,0")) - (rule "applyEq" (formula "13") (term "1,2,1,0,1,0") (ifseqformula "1")) - (rule "polySimp_addAssoc" (formula "13") (term "2,1,0,1,0")) - (rule "add_literals" (formula "13") (term "0,2,1,0,1,0")) - (rule "add_zero_left" (formula "13") (term "2,1,0,1,0")) - (rule "methodCallEmpty" (formula "13") (term "1")) - (rule "blockEmpty" (formula "13") (term "1")) - (rule "assignment_write_attribute_this" (formula "13")) - (builtin "One Step Simplification" (formula "13")) - (rule "methodCallReturnIgnoreResult" (formula "13") (term "1")) - (rule "blockEmpty" (formula "13") (term "1")) - (rule "methodCallReturn" (formula "13") (term "1")) - (rule "assignment" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) - (rule "methodCallEmpty" (formula "13") (term "1")) - (rule "blockEmpty" (formula "13") (term "1")) - (rule "assignment" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) - (rule "blockEmpty" (formula "13") (term "1")) - (rule "assignment" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) - (rule "emptyModality" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "1"))) - (rule "closeTrue" (formula "13")) - ) - (branch "Null Reference (newObject = null)" - (builtin "One Step Simplification" (formula "14")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11"))) - (rule "closeFalse" (formula "1")) - ) - ) -) -(branch "Null Reference (data = null)" - (rule "close" (formula "8") (ifseqformula "1")) -) -) - -} diff --git a/IntegerList/features/Cons/diagram/Push.cbcmodel b/IntegerList/features/Cons/diagram/Push.cbcmodel deleted file mode 100644 index 4e6ea2605..000000000 --- a/IntegerList/features/Cons/diagram/Push.cbcmodel +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Cons/diagram/Push.diagram b/IntegerList/features/Cons/diagram/Push.diagram deleted file mode 100644 index c4b3588bd..000000000 --- a/IntegerList/features/Cons/diagram/Push.diagram +++ /dev/null @@ -1,430 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Cons/provePush/helper.key b/IntegerList/features/Cons/provePush/helper.key deleted file mode 100644 index e69de29bb..000000000 diff --git a/IntegerList/features/Cons/provePush/prove0.key b/IntegerList/features/Cons/provePush/prove0.key deleted file mode 100644 index 01c5d7eb3..000000000 --- a/IntegerList/features/Cons/provePush/prove0.key +++ /dev/null @@ -1,345 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Thu Apr 16 16:02:09 CEST 2020 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]useUninterpretedMultiplication=true -[SMTSettings]SelectedTaclets= -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[Strategy]Timeout=-1 -[Strategy]MaximumNumberOfAutomaticApplications=20000 -[SMTSettings]integersMaximum=2147483645 -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]maxGenericSorts=2 -[SMTSettings]integersMinimum=-2147483645 -[SMTSettings]invariantForall=false -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -" -} - -\javaSource "C:/bachelor/redmine/Fallbeispiele/IntegerList";\include "helper.key";\programVariables {int[] data; int[] old_data; int newTop; Heap heapAtPre;}\problem { - true - & true - & !data = null - & geq(length(data), Z(0(#))) - & old_data = data - & boolean::select(heap, - data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data, - java.lang.Object::) - = TRUE - & wellFormed(heap) --> {heapAtPre:=heap} - \<{ - data=Generated_IntegerList.generated_base(data,old_data,newTop); - }\> ( int::select(heap, - data, - arr(sub(length(data), - Z(1(#))))) - = newTop - & ( \exists int z; - ( leq(Z(0(#)), z) - & lt(z, length(data)) - & int::select(heap, data, arr(z)) - = newTop) - & \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(old_data)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, length(data)) - & int::select(heap, - data, - arr(z)) - = int::select(heap, - old_data, - arr(k)))) - & int::select(heap, - data, - arr(sub(length(data), - Z(1(#))))) - = newTop)) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "860") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "1")) -(rule "polySimp_elimSub" (formula "7") (term "0,2,0,0,0")) -(rule "mul_literals" (formula "7") (term "1,0,2,0,0,0")) -(rule "polySimp_elimSub" (formula "7") (term "0,2,0,1,1,0")) -(rule "mul_literals" (formula "7") (term "1,0,2,0,1,1,0")) -(rule "polySimp_addComm0" (formula "7") (term "0,2,0,0,0")) -(rule "polySimp_addComm0" (formula "7") (term "0,2,0,1,1,0")) -(rule "inEqSimp_ltToLeq" (formula "7") (term "1,0,0,0,0,1,0")) -(rule "polySimp_mulComm0" (formula "7") (term "1,0,0,1,0,0,0,0,1,0")) -(rule "inEqSimp_ltToLeq" (formula "7") (term "1,0,0,1,0,1,0")) -(rule "polySimp_mulComm0" (formula "7") (term "1,0,0,1,0,0,1,0,1,0")) -(rule "inEqSimp_ltToLeq" (formula "7") (term "1,0,0,1,0,1,0,1,0")) -(rule "polySimp_mulComm0" (formula "7") (term "1,0,0,1,0,0,1,0,1,0,1,0")) -(rule "inEqSimp_commuteLeq" (formula "7") (term "0,0,0,0,0,1,0")) -(rule "inEqSimp_commuteLeq" (formula "7") (term "0,0,0,1,0,1,0")) -(rule "inEqSimp_commuteLeq" (formula "7") (term "0,0,0,1,0,1,0,1,0")) -(rule "applyEq" (formula "4") (term "1,0") (ifseqformula "2")) -(rule "inEqSimp_sepPosMonomial0" (formula "6") (term "1,0,0,0,0,1,0")) -(rule "polySimp_mulComm0" (formula "6") (term "1,1,0,0,0,0,1,0")) -(rule "polySimp_rightDist" (formula "6") (term "1,1,0,0,0,0,1,0")) -(rule "mul_literals" (formula "6") (term "0,1,1,0,0,0,0,1,0")) -(rule "polySimp_mulLiterals" (formula "6") (term "1,1,1,0,0,0,0,1,0")) -(rule "polySimp_elimOne" (formula "6") (term "1,1,1,0,0,0,0,1,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "6") (term "1,0,0,1,0,1,0")) -(rule "polySimp_mulComm0" (formula "6") (term "1,1,0,0,1,0,1,0")) -(rule "polySimp_rightDist" (formula "6") (term "1,1,0,0,1,0,1,0")) -(rule "mul_literals" (formula "6") (term "0,1,1,0,0,1,0,1,0")) -(rule "polySimp_mulLiterals" (formula "6") (term "1,1,1,0,0,1,0,1,0")) -(rule "polySimp_elimOne" (formula "6") (term "1,1,1,0,0,1,0,1,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "6") (term "1,0,0,1,0,1,0,1,0")) -(rule "polySimp_mulComm0" (formula "6") (term "1,1,0,0,1,0,1,0,1,0")) -(rule "polySimp_rightDist" (formula "6") (term "1,1,0,0,1,0,1,0,1,0")) -(rule "mul_literals" (formula "6") (term "0,1,1,0,0,1,0,1,0,1,0")) -(rule "polySimp_mulLiterals" (formula "6") (term "1,1,1,0,0,1,0,1,0,1,0")) -(rule "polySimp_elimOne" (formula "6") (term "1,1,1,0,0,1,0,1,0,1,0")) -(rule "nnf_imp2or" (formula "6") (term "0,1,0,1,0")) -(rule "nnf_notAnd" (formula "6") (term "0,0,1,0,1,0")) -(rule "inEqSimp_notLeq" (formula "6") (term "1,0,0,1,0,1,0")) -(rule "polySimp_rightDist" (formula "6") (term "1,0,0,1,0,0,1,0,1,0")) -(rule "mul_literals" (formula "6") (term "0,1,0,0,1,0,0,1,0,1,0")) -(rule "polySimp_addAssoc" (formula "6") (term "0,0,1,0,0,1,0,1,0")) -(rule "add_literals" (formula "6") (term "0,0,0,1,0,0,1,0,1,0")) -(rule "add_zero_left" (formula "6") (term "0,0,1,0,0,1,0,1,0")) -(rule "inEqSimp_sepPosMonomial1" (formula "6") (term "1,0,0,1,0,1,0")) -(rule "polySimp_mulLiterals" (formula "6") (term "1,1,0,0,1,0,1,0")) -(rule "polySimp_elimOne" (formula "6") (term "1,1,0,0,1,0,1,0")) -(rule "inEqSimp_notGeq" (formula "6") (term "0,0,0,1,0,1,0")) -(rule "times_zero_1" (formula "6") (term "1,0,0,0,0,0,1,0,1,0")) -(rule "add_zero_right" (formula "6") (term "0,0,0,0,0,1,0,1,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "6") (term "0,0,0,1,0,1,0")) -(rule "mul_literals" (formula "6") (term "1,0,0,0,1,0,1,0")) -(builtin "Use Operation Contract" (formula "6") (newnames "heapBefore_generated_base,result,exc,heapAfter_generated_base,anon_heap_generated_base") (contract "Generated_IntegerList[Generated_IntegerList::generated_base([I,[I,int)].JML normal_behavior operation contract.0")) -(branch "Post (generated_base)" - (builtin "One Step Simplification" (formula "6")) - (rule "translateJavaSubInt" (formula "6") (term "0,2,0,1,0,0,1,1")) - (rule "andLeft" (formula "6")) - (rule "selectCreatedOfAnonAsFormulaEQ" (formula "7") (term "1,1,0") (ifseqformula "6")) - (rule "andLeft" (formula "7")) - (rule "andLeft" (formula "8")) - (rule "andLeft" (formula "7")) - (rule "andLeft" (formula "8")) - (rule "notLeft" (formula "9")) - (rule "andLeft" (formula "8")) - (rule "andLeft" (formula "8")) - (rule "exLeft" (formula "8") (inst "sk=z_0")) - (rule "andLeft" (formula "8")) - (rule "andLeft" (formula "8")) - (rule "replace_known_right" (formula "7") (term "0") (ifseqformula "14")) - (builtin "One Step Simplification" (formula "7")) - (rule "polySimp_elimSub" (formula "12") (term "0,2,0")) - (rule "mul_literals" (formula "12") (term "1,0,2,0")) - (rule "polySimp_addComm0" (formula "12") (term "0,2,0")) - (rule "inEqSimp_ltToLeq" (formula "11") (term "1,0,0,1,0")) - (rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,0,0,1,0")) - (rule "inEqSimp_ltToLeq" (formula "11") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,0,0")) - (rule "inEqSimp_ltToLeq" (formula "9")) - (rule "polySimp_mulComm0" (formula "9") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "9") (term "0")) - (rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0")) - (rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0,1,0")) - (rule "inEqSimp_commuteLeq" (formula "8")) - (rule "assignment" (formula "16") (term "1")) - (builtin "One Step Simplification" (formula "16")) - (rule "applyEq" (formula "11") (term "0,0,1,0,0,1,0,0") (ifseqformula "2")) - (rule "applyEq" (formula "11") (term "1,1,1,0,1,0") (ifseqformula "2")) - (rule "inEqSimp_sepPosMonomial0" (formula "11") (term "1,0,0,1,0")) - (rule "polySimp_mulComm0" (formula "11") (term "1,1,0,0,1,0")) - (rule "polySimp_rightDist" (formula "11") (term "1,1,0,0,1,0")) - (rule "mul_literals" (formula "11") (term "0,1,1,0,0,1,0")) - (rule "polySimp_mulLiterals" (formula "11") (term "1,1,1,0,0,1,0")) - (rule "polySimp_elimOne" (formula "11") (term "1,1,1,0,0,1,0")) - (rule "inEqSimp_sepNegMonomial0" (formula "9")) - (rule "polySimp_mulLiterals" (formula "9") (term "0")) - (rule "polySimp_elimOne" (formula "9") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "11") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "11") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "11") (term "1,1,0,0")) - (rule "mul_literals" (formula "11") (term "0,1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "11") (term "1,1,1,0,0")) - (rule "polySimp_elimOne" (formula "11") (term "1,1,1,0,0")) - (rule "pullOutSelect" (formula "10") (term "0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfAnonEQ" (formula "10") (ifseqformula "6")) - (builtin "One Step Simplification" (formula "10") (ifInst "" (formula "15"))) - (rule "eqSymm" (formula "11")) - (rule "applyEqReverse" (formula "10") (term "1") (ifseqformula "11")) - (rule "hideAuxiliaryEq" (formula "11")) - (rule "elementOfSetMinus" (formula "10") (term "0,0,0")) - (builtin "One Step Simplification" (formula "10") (ifInst "" (formula "14"))) - (rule "pullOutSelect" (formula "12") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfAnonEQ" (formula "12") (ifseqformula "6")) - (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "15"))) - (rule "eqSymm" (formula "13")) - (rule "applyEqReverse" (formula "12") (term "1") (ifseqformula "13")) - (rule "hideAuxiliaryEq" (formula "13")) - (rule "elementOfSetMinus" (formula "12") (term "0,0,0")) - (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "14"))) - (rule "nnf_imp2or" (formula "11") (term "0")) - (rule "nnf_notAnd" (formula "11") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "11") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "11") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "11") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "11") (term "0,0,1,0,0")) - (rule "add_literals" (formula "11") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "11") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "11") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "11") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "11") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "11") (term "0,0,0")) - (rule "times_zero_1" (formula "11") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "11") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "11") (term "0,0,0")) - (rule "mul_literals" (formula "11") (term "1,0,0,0")) - (rule "emptyModality" (formula "16") (term "1")) - (builtin "One Step Simplification" (formula "16")) - (rule "replaceKnownSelect_taclet0_2" (formula "16") (term "0,0")) - (rule "replaceKnownAuxiliaryConstant_taclet0_3" (formula "16") (term "0,0")) - (builtin "One Step Simplification" (formula "16")) - (rule "replaceKnownSelect_taclet0_2" (formula "16") (term "0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_3" (formula "16") (term "0,1")) - (builtin "One Step Simplification" (formula "16")) - (rule "applyEq" (formula "16") (term "1,1,1,0,1,0,1") (ifseqformula "2")) - (rule "applyEq" (formula "16") (term "0,1,1,0,0,1") (ifseqformula "2")) - (rule "replace_known_left" (formula "16") (term "1") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "16")) - (rule "nnf_ex2all" (formula "16")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_literals" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) - (rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) - (rule "ex_pull_out3" (formula "12") (term "0")) - (rule "cnf_rightDist" (formula "12") (term "0,0")) - (rule "commute_or" (formula "12") (term "1,0,0")) - (rule "cnf_rightDist" (formula "12") (term "0,0,0")) - (rule "commute_or" (formula "12") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "2") (term "0")) - (rule "arrayLengthIsAnInt" (formula "2") (term "0")) - (builtin "One Step Simplification" (formula "2")) - (rule "true_left" (formula "2")) - (rule "commute_and_2" (formula "12") (term "0,0")) - (rule "cut_direct" (formula "8") (term "0")) - (branch "CUT: result. = TRUE TRUE" - (builtin "One Step Simplification" (formula "9")) - (rule "true_left" (formula "9")) - (rule "allLeft" (formula "1") (inst "t=z_0")) - (rule "replaceKnownSelect_taclet0_0" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_1" (formula "1") (term "0,0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "10")) - (rule "qeq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq0" (formula "11") (ifseqformula "1")) - (rule "andLeft" (formula "11")) - (rule "inEqSimp_homoInEq1" (formula "11")) - (rule "polySimp_pullOutFactor1b" (formula "11") (term "0")) - (rule "add_literals" (formula "11") (term "1,1,0")) - (rule "times_zero_1" (formula "11") (term "1,0")) - (rule "add_zero_right" (formula "11") (term "0")) - (rule "leq_literals" (formula "11")) - (rule "closeFalse" (formula "11")) - ) - (branch "CUT: result. = TRUE FALSE" - (builtin "One Step Simplification" (formula "8")) - (rule "allLeft" (formula "1") (inst "t=z_0")) - (rule "replaceKnownSelect_taclet0_0" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_1" (formula "1") (term "0,0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "11")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq0" (formula "10") (ifseqformula "1")) - (rule "qeq_literals" (formula "10") (term "0")) - (builtin "One Step Simplification" (formula "10")) - (rule "closeFalse" (formula "10")) - ) -) -(branch "Exceptional Post (generated_base)" - (builtin "One Step Simplification" (formula "6")) - (rule "translateJavaSubInt" (formula "6") (term "0,2,0,1,0,0,1,1")) - (rule "andLeft" (formula "6")) - (rule "selectCreatedOfAnonAsFormulaEQ" (formula "7") (term "1,0") (ifseqformula "6")) - (rule "andLeft" (formula "7")) - (rule "andLeft" (formula "8")) - (rule "andLeft" (formula "7")) - (rule "andLeft" (formula "9")) - (rule "notLeft" (formula "7")) - (rule "close" (formula "11") (ifseqformula "10")) -) -(branch "Pre (generated_base)" - (builtin "One Step Simplification" (formula "6") (ifInst "" (formula "5")) (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "3"))) - (rule "applyEq" (formula "6") (term "0,0,1") (ifseqformula "2")) - (rule "replace_known_right" (formula "6") (term "0,1") (ifseqformula "5")) - (builtin "One Step Simplification" (formula "6")) - (rule "applyEq" (formula "6") (term "1,0,1") (ifseqformula "2")) - (rule "replace_known_left" (formula "6") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "6")) - (rule "notRight" (formula "6")) - (rule "applyEq" (formula "3") (term "0") (ifseqformula "1")) - (rule "eqSymm" (formula "3")) - (rule "close" (formula "6") (ifseqformula "3")) -) -) - -} diff --git a/IntegerList/features/Decreasing/diagram/Sort.cbcmodel b/IntegerList/features/Decreasing/diagram/Sort.cbcmodel deleted file mode 100644 index fafba9a68..000000000 --- a/IntegerList/features/Decreasing/diagram/Sort.cbcmodel +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Decreasing/diagram/Sort.diagram b/IntegerList/features/Decreasing/diagram/Sort.diagram deleted file mode 100644 index 5b04a7d94..000000000 --- a/IntegerList/features/Decreasing/diagram/Sort.diagram +++ /dev/null @@ -1,2433 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Decreasing/proveSort/helper.key b/IntegerList/features/Decreasing/proveSort/helper.key deleted file mode 100644 index e69de29bb..000000000 diff --git a/IntegerList/features/Decreasing/proveSort/prove0.key b/IntegerList/features/Decreasing/proveSort/prove0.key deleted file mode 100644 index 8e1bed74a..000000000 --- a/IntegerList/features/Decreasing/proveSort/prove0.key +++ /dev/null @@ -1,102 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Thu Apr 16 16:01:59 CEST 2020 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]useUninterpretedMultiplication=true -[SMTSettings]SelectedTaclets= -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[Strategy]Timeout=-1 -[Strategy]MaximumNumberOfAutomaticApplications=20000 -[SMTSettings]integersMaximum=2147483645 -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]maxGenericSorts=2 -[SMTSettings]integersMinimum=-2147483645 -[SMTSettings]invariantForall=false -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -" -} - -\javaSource "C:/bachelor/redmine/Fallbeispiele/IntegerList";\include "helper.key";\programVariables {int[] data; int i; int j; int tmp; int[] old_data; Heap heapAtPre;}\problem { - true - & !data = null - & geq(i, Z(0(#))) - & leq(i, length(data)) - & leq(j, sub(length(data), Z(2(#)))) - & geq(j, sub(i, Z(1(#)))) - & boolean::select(heap, - data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data, - java.lang.Object::) - = TRUE - & wellFormed(heap) --> {heapAtPre:=heap} - \<{ - i=0; - }\> i = Z(0(#)) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "44") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "1")) -(rule "polySimp_elimSub" (formula "4") (term "1")) -(rule "mul_literals" (formula "4") (term "1,1")) -(rule "polySimp_elimSub" (formula "3") (term "1")) -(rule "mul_literals" (formula "3") (term "1,1")) -(rule "polySimp_addComm0" (formula "4") (term "1")) -(rule "polySimp_addComm0" (formula "3") (term "1")) -(rule "inEqSimp_commuteLeq" (formula "2")) -(rule "inEqSimp_homoInEq0" (formula "3")) -(rule "polySimp_addComm1" (formula "3") (term "0")) -(rule "assignment" (formula "9")) -(rule "inEqSimp_sepPosMonomial1" (formula "3")) -(rule "polySimp_mulComm0" (formula "3") (term "1")) -(rule "polySimp_rightDist" (formula "3") (term "1")) -(rule "polySimp_mulLiterals" (formula "3") (term "1,1")) -(rule "mul_literals" (formula "3") (term "0,1")) -(rule "polySimp_elimOne" (formula "3") (term "1,1")) -(rule "emptyModality" (formula "9") (term "1")) -(builtin "One Step Simplification" (formula "9")) -(rule "closeTrue" (formula "9")) -) - -} diff --git a/IntegerList/features/Increasing/diagram/Sort.cbcmodel b/IntegerList/features/Increasing/diagram/Sort.cbcmodel deleted file mode 100644 index 874e78c74..000000000 --- a/IntegerList/features/Increasing/diagram/Sort.cbcmodel +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Increasing/diagram/Sort.diagram b/IntegerList/features/Increasing/diagram/Sort.diagram deleted file mode 100644 index 0ca7c4837..000000000 --- a/IntegerList/features/Increasing/diagram/Sort.diagram +++ /dev/null @@ -1,5696 +0,0 @@ -<<<<<<< HEAD:IntegerList/features/Increasing/diagram/Sort.diagram - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -======= - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ->>>>>>> remotes/origin/ClassConnection:EvaluationBankAccount/src/diagram/DailyAccountUpdate2.diagram diff --git a/IntegerList/features/Increasing/proveSort/helper.key b/IntegerList/features/Increasing/proveSort/helper.key deleted file mode 100644 index e69de29bb..000000000 diff --git a/IntegerList/features/Increasing/proveSort/prove0.key b/IntegerList/features/Increasing/proveSort/prove0.key deleted file mode 100644 index 90208e49d..000000000 --- a/IntegerList/features/Increasing/proveSort/prove0.key +++ /dev/null @@ -1,105 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Thu Apr 16 16:00:49 CEST 2020 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]useUninterpretedMultiplication=true -[SMTSettings]SelectedTaclets= -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[Strategy]Timeout=-1 -[Strategy]MaximumNumberOfAutomaticApplications=20000 -[SMTSettings]integersMaximum=2147483645 -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]maxGenericSorts=2 -[SMTSettings]integersMinimum=-2147483645 -[SMTSettings]invariantForall=false -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -" -} - -\javaSource "C:/bachelor/redmine/Fallbeispiele/IntegerList";\include "helper.key";\programVariables {int[] data; int i; int j; int tmp; int[] old_data; Heap heapAtPre;}\problem { - data = old_data - & !data = null - & geq(i, Z(0(#))) - & leq(i, length(data)) - & leq(j, sub(length(data), Z(2(#)))) - & geq(j, sub(i, Z(1(#)))) - & boolean::select(heap, - data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data, - java.lang.Object::) - = TRUE - & wellFormed(heap) --> {heapAtPre:=heap} - \<{ - i=0; - }\> i = Z(0(#)) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "46") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "eqSymm" (formula "1")) -(rule "polySimp_elimSub" (formula "5") (term "1")) -(rule "mul_literals" (formula "5") (term "1,1")) -(rule "polySimp_elimSub" (formula "4") (term "1")) -(rule "mul_literals" (formula "4") (term "1,1")) -(rule "polySimp_addComm0" (formula "5") (term "1")) -(rule "polySimp_addComm0" (formula "4") (term "1")) -(rule "inEqSimp_commuteLeq" (formula "3")) -(rule "inEqSimp_homoInEq0" (formula "4")) -(rule "polySimp_addComm1" (formula "4") (term "0")) -(rule "assignment" (formula "10")) -(rule "applyEq" (formula "7") (term "1,0") (ifseqformula "1")) -(rule "inEqSimp_sepPosMonomial1" (formula "4")) -(rule "polySimp_mulComm0" (formula "4") (term "1")) -(rule "polySimp_rightDist" (formula "4") (term "1")) -(rule "polySimp_mulLiterals" (formula "4") (term "1,1")) -(rule "mul_literals" (formula "4") (term "0,1")) -(rule "polySimp_elimOne" (formula "4") (term "1,1")) -(rule "emptyModality" (formula "9") (term "1")) -(builtin "One Step Simplification" (formula "9")) -(rule "closeTrue" (formula "9")) -) - -} diff --git a/IntegerList/features/Sorted/diagram/Push.cbcmodel b/IntegerList/features/Sorted/diagram/Push.cbcmodel deleted file mode 100644 index 6f2ae0cdd..000000000 --- a/IntegerList/features/Sorted/diagram/Push.cbcmodel +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Sorted/diagram/Push.diagram b/IntegerList/features/Sorted/diagram/Push.diagram deleted file mode 100644 index 9fbfa7ddd..000000000 --- a/IntegerList/features/Sorted/diagram/Push.diagram +++ /dev/null @@ -1,754 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Sorted/provePush/helper.key b/IntegerList/features/Sorted/provePush/helper.key deleted file mode 100644 index e69de29bb..000000000 diff --git a/IntegerList/features/Sorted/provePush/prove0.key b/IntegerList/features/Sorted/provePush/prove0.key deleted file mode 100644 index b28c4f01a..000000000 --- a/IntegerList/features/Sorted/provePush/prove0.key +++ /dev/null @@ -1,550 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Fri Apr 17 15:48:17 CEST 2020 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]useUninterpretedMultiplication=true -[SMTSettings]SelectedTaclets= -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[Strategy]Timeout=-1 -[Strategy]MaximumNumberOfAutomaticApplications=20000 -[SMTSettings]integersMaximum=2147483645 -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]maxGenericSorts=2 -[SMTSettings]integersMinimum=-2147483645 -[SMTSettings]invariantForall=false -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -" -} - -\javaSource "C:/bachelor/redmine/Fallbeispiele/IntegerList";\include "helper.key";\programVariables {int[] data; int[] old_data; int newTop; int[] old_data_old; int newTop_old; Heap heapAtPre;}\problem { - \forall int k; - ( leq(Z(0(#)), k) - & lt(k, sub(length(data), Z(1(#)))) - -> geq(int::select(heap, data, arr(k)), - int::select(heap, - data, - arr(add(k, Z(1(#))))))) - & true - & !data = null - & geq(length(data), Z(0(#))) - & !old_data = null - & geq(length(old_data), Z(0(#))) - & old_data = data - & boolean::select(heap, - data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data_old, - java.lang.Object::) - = TRUE - & wellFormed(heap) --> {heapAtPre:=heap - || old_data_old:=old_data - || newTop_old:=newTop} - \<{ - data=Generated_IntegerList.generated_base(data,old_data,newTop); - }\> ( \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(old_data)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, length(data)) - & int::select(heap, - data, - arr(z)) - = int::select(heap, - old_data, - arr(k)))) - & old_data = old_data_old - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "5026") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "eqSymm" (formula "11") (term "1,0,0,1")) -(rule "eqSymm" (formula "11") (term "1,0,1")) -(rule "polySimp_elimSub" (formula "1") (term "1,1,0,0")) -(rule "mul_literals" (formula "1") (term "1,1,1,0,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,2,1,1,0")) -(rule "polySimp_addComm0" (formula "1") (term "1,1,0,0")) -(rule "inEqSimp_ltToLeq" (formula "11") (term "1,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "11") (term "1,0,0,1,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,0,0,1,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "1") (term "1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) -(rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) -(rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0,1,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) -(rule "inEqSimp_commuteGeq" (formula "1") (term "1,0")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "4")) -(rule "applyEq" (formula "10") (term "0,0,0") (ifseqformula "3")) -(rule "applyEq" (formula "5") (term "1,0") (ifseqformula "3")) -(rule "applyEq" (formula "8") (term "0") (ifseqformula "3")) -(rule "inEqSimp_sepPosMonomial0" (formula "8") (term "1,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "8") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "8") (term "1,1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "0,1,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "8") (term "1,1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "8") (term "1,1,1,0,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "8") (term "1,0,0,1,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "8") (term "1,1,0,0,1,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "8") (term "1,1,0,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "0,1,1,0,0,1,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "8") (term "1,1,1,0,0,1,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "8") (term "1,1,1,0,0,1,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) -(rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,1,0,0")) -(rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) -(rule "nnf_imp2or" (formula "1") (term "0")) -(rule "nnf_notAnd" (formula "1") (term "0,0")) -(rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) -(rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) -(rule "add_literals" (formula "1") (term "0,0,0,0,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) -(rule "mul_literals" (formula "1") (term "1,0,0,0")) -(rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) -(rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) -(rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) -(rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) -(rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,1,0,0")) -(rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) -(rule "nnf_imp2or" (formula "8") (term "0,0,0,0,1")) -(rule "nnf_notAnd" (formula "8") (term "0,0,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "8") (term "0,0,0,0,0,0,1")) -(rule "times_zero_1" (formula "8") (term "1,0,0,0,0,0,0,0,0,1")) -(rule "add_zero_right" (formula "8") (term "0,0,0,0,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "8") (term "0,0,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "1,0,0,0,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "8") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "8") (term "1,0,0,1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "0,1,0,0,1,0,0,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "8") (term "0,0,1,0,0,0,0,0,1")) -(rule "add_literals" (formula "8") (term "0,0,0,1,0,0,0,0,0,1")) -(rule "add_zero_left" (formula "8") (term "0,0,1,0,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "8") (term "1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "8") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "8") (term "1,1,0,0,0,0,0,1")) -(builtin "Use Operation Contract" (formula "8") (newnames "heapBefore_generated_base,result,exc,heapAfter_generated_base,anon_heap_generated_base") (contract "Generated_IntegerList[Generated_IntegerList::generated_base([I,[I,int)].JML normal_behavior operation contract.0")) -(branch "Post (generated_base)" - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "8")) - (rule "translateJavaSubInt" (formula "8") (term "0,2,0,1,0,0,1,1")) - (rule "andLeft" (formula "8")) - (rule "selectCreatedOfAnonAsFormulaEQ" (formula "9") (term "1,1,0") (ifseqformula "8")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "11")) - (rule "andLeft" (formula "11")) - (rule "notLeft" (formula "12")) - (rule "andLeft" (formula "11")) - (rule "andLeft" (formula "11")) - (rule "exLeft" (formula "11") (inst "sk=z_0")) - (rule "andLeft" (formula "11")) - (rule "andLeft" (formula "11")) - (rule "replace_known_right" (formula "10") (term "0") (ifseqformula "16")) - (builtin "One Step Simplification" (formula "10")) - (rule "polySimp_elimSub" (formula "15") (term "0,2,0")) - (rule "mul_literals" (formula "15") (term "1,0,2,0")) - (rule "polySimp_addComm0" (formula "15") (term "0,2,0")) - (rule "inEqSimp_ltToLeq" (formula "14") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,0,0,1,0,0")) - (rule "inEqSimp_ltToLeq" (formula "14") (term "1,0,0,1,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,0,0,1,0,0,1,0")) - (rule "inEqSimp_ltToLeq" (formula "12")) - (rule "polySimp_mulComm0" (formula "12") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "12") (term "0")) - (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0,0")) - (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0,0,1,0")) - (rule "inEqSimp_commuteLeq" (formula "11")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "14") (term "1,1,1,0,1,0") (ifseqformula "3")) - (rule "applyEq" (formula "14") (term "0,0,1,0,0,1,0,0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "1,0,0,1,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,1,0,0,1,0")) - (rule "polySimp_rightDist" (formula "14") (term "1,1,0,0,1,0")) - (rule "polySimp_mulLiterals" (formula "14") (term "1,1,1,0,0,1,0")) - (rule "mul_literals" (formula "14") (term "0,1,1,0,0,1,0")) - (rule "polySimp_elimOne" (formula "14") (term "1,1,1,0,0,1,0")) - (rule "inEqSimp_sepNegMonomial0" (formula "12")) - (rule "polySimp_mulLiterals" (formula "12") (term "0")) - (rule "polySimp_elimOne" (formula "12") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "14") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "14") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "14") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "14") (term "1,1,1,0,0")) - (rule "pullOutSelect" (formula "13") (term "0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfAnonEQ" (formula "13") (ifseqformula "8")) - (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "17"))) - (rule "eqSymm" (formula "14")) - (rule "applyEqReverse" (formula "13") (term "1") (ifseqformula "14")) - (rule "hideAuxiliaryEq" (formula "14")) - (rule "elementOfSetMinus" (formula "13") (term "0,0,0")) - (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "16"))) - (rule "pullOutSelect" (formula "15") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfAnonEQ" (formula "15") (ifseqformula "8")) - (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "17"))) - (rule "eqSymm" (formula "16")) - (rule "applyEqReverse" (formula "15") (term "1") (ifseqformula "16")) - (rule "hideAuxiliaryEq" (formula "16")) - (rule "elementOfSetMinus" (formula "15") (term "0,0,0")) - (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "16"))) - (rule "nnf_imp2or" (formula "14") (term "0")) - (rule "nnf_notAnd" (formula "14") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "14") (term "0,0,0")) - (rule "times_zero_1" (formula "14") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "14") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "0,0,0")) - (rule "mul_literals" (formula "14") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "14") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "14") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "14") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "14") (term "0,0,1,0,0")) - (rule "add_literals" (formula "14") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "14") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "14") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "14") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "14") (term "1,1,0,0")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "eqSymm" (formula "18") (term "1")) - (rule "replace_known_left" (formula "18") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "18")) - (rule "allRight" (formula "18") (inst "sk=k_0")) - (rule "orRight" (formula "18")) - (rule "orRight" (formula "18")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "1") (term "0,0,1,0") (ifseqformula "5")) - (rule "applyEq" (formula "20") (term "1,1,1,0") (ifseqformula "5")) - (rule "inEqSimp_sepNegMonomial0" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "pullOutSelect" (formula "20") (term "1,1,0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20")) (ifInst "" (formula "7"))) - (rule "elementOfSetMinus" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20")) (ifInst "" (formula "7"))) - (rule "applyEqReverse" (formula "21") (term "1,1,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "nnf_ex2all" (formula "20")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) - (rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "ex_pull_out3" (formula "17") (term "0")) - (rule "cnf_rightDist" (formula "17") (term "0,0")) - (rule "commute_or" (formula "17") (term "1,0,0")) - (rule "cnf_rightDist" (formula "17") (term "0,0,0")) - (rule "commute_or" (formula "17") (term "1,0,0,0")) - (rule "cut_direct" (formula "13") (term "0")) - (branch "CUT: result. = TRUE TRUE" - (builtin "One Step Simplification" (formula "14")) - (rule "true_left" (formula "14")) - (rule "commute_and_2" (formula "17") (term "0,0")) - (rule "arrayLengthNotNegative" (formula "15") (term "0")) - (rule "arrayLengthIsAnInt" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) - (rule "true_left" (formula "16")) - (rule "commute_and" (formula "18") (term "0,0,0")) - (rule "allLeft" (formula "1") (inst "t=z_0")) - (rule "replaceKnownSelect_taclet0_0" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_1" (formula "1") (term "0,0,1")) - (rule "eqSymm" (formula "1") (term "0,1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0,0") (ifseqformula "15")) - (rule "qeq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "17")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "notLeft" (formula "1")) - (rule "allLeft" (formula "18") (inst "t=k_0")) - (rule "replaceKnownSelect_taclet0_4" (formula "18") (term "1,1,0,0,0")) - (rule "replaceKnownAuxiliaryConstant_taclet0_5" (formula "18") (term "1,1,0,0,0")) - (rule "exLeft" (formula "18") (inst "sk=z_2")) - (rule "andLeft" (formula "18")) - (rule "andLeft" (formula "18")) - (rule "inEqSimp_commuteGeq" (formula "20") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "18") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "19") (term "1,0")) - (rule "inEqSimp_homoInEq0" (formula "20") (term "1")) - (rule "polySimp_addComm1" (formula "20") (term "0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "20") (term "1")) - (rule "polySimp_mulComm0" (formula "20") (term "1,1")) - (rule "polySimp_rightDist" (formula "20") (term "1,1")) - (rule "mul_literals" (formula "20") (term "0,1,1")) - (rule "polySimp_mulLiterals" (formula "20") (term "1,1,1")) - (rule "polySimp_elimOne" (formula "20") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "20") (term "0,0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "19") (term "0,0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "18") (term "0,0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "20") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "20") (term "0,0,0")) - (rule "add_literals" (formula "20") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "20") (term "1,0,0,0")) - (rule "add_zero_right" (formula "20") (term "0,0,0")) - (rule "leq_literals" (formula "20") (term "0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "19") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "19") (term "0,0,0")) - (rule "add_literals" (formula "19") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "19") (term "1,0,0,0")) - (rule "add_zero_right" (formula "19") (term "0,0,0")) - (rule "leq_literals" (formula "19") (term "0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "18") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "18") (term "0,0,0")) - (rule "add_literals" (formula "18") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "18") (term "1,0,0,0")) - (rule "add_zero_right" (formula "18") (term "0,0,0")) - (rule "leq_literals" (formula "18") (term "0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0") (inst "selectSK=arr_4")) - (rule "simplifySelectOfAnonEQ" (formula "18") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "25")) (ifInst "" (formula "13"))) - (rule "eqSymm" (formula "19")) - (rule "applyEqReverse" (formula "18") (term "1") (ifseqformula "19")) - (rule "hideAuxiliaryEq" (formula "19")) - (rule "elementOfSetMinus" (formula "18") (term "0,0")) - (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "24")) (ifInst "" (formula "13"))) - (rule "allLeft" (formula "1") (inst "t=z_2")) - (rule "replaceKnownSelect_taclet00_6" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet00_7" (formula "1") (term "0,0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "20")) - (rule "qeq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq0" (formula "21") (ifseqformula "1")) - (rule "andLeft" (formula "21")) - (rule "inEqSimp_homoInEq1" (formula "21")) - (rule "polySimp_pullOutFactor1b" (formula "21") (term "0")) - (rule "add_literals" (formula "21") (term "1,1,0")) - (rule "times_zero_1" (formula "21") (term "1,0")) - (rule "add_zero_right" (formula "21") (term "0")) - (rule "leq_literals" (formula "21")) - (rule "closeFalse" (formula "21")) - ) - (branch "CUT: result. = TRUE FALSE" - (builtin "One Step Simplification" (formula "13")) - (rule "commute_and_2" (formula "17") (term "0,0")) - (rule "arrayLengthNotNegative" (formula "15") (term "0")) - (rule "arrayLengthIsAnInt" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) - (rule "true_left" (formula "16")) - (rule "commute_and" (formula "18") (term "0,0,0")) - (rule "allLeft" (formula "1") (inst "t=z_0")) - (rule "replaceKnownSelect_taclet0_0" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_1" (formula "1") (term "0,0,1")) - (rule "eqSymm" (formula "1") (term "0,1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0,0") (ifseqformula "15")) - (rule "qeq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "17")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "notLeft" (formula "1")) - (rule "allLeft" (formula "18") (inst "t=k_0")) - (rule "replaceKnownSelect_taclet0_4" (formula "18") (term "1,1,0,0,0")) - (rule "replaceKnownAuxiliaryConstant_taclet0_5" (formula "18") (term "1,1,0,0,0")) - (rule "exLeft" (formula "18") (inst "sk=z_1")) - (rule "andLeft" (formula "18")) - (rule "andLeft" (formula "18")) - (rule "inEqSimp_commuteGeq" (formula "20") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "19") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "18") (term "1,0")) - (rule "inEqSimp_homoInEq0" (formula "20") (term "1")) - (rule "polySimp_addComm1" (formula "20") (term "0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "20") (term "1")) - (rule "polySimp_mulComm0" (formula "20") (term "1,1")) - (rule "polySimp_rightDist" (formula "20") (term "1,1")) - (rule "mul_literals" (formula "20") (term "0,1,1")) - (rule "polySimp_mulLiterals" (formula "20") (term "1,1,1")) - (rule "polySimp_elimOne" (formula "20") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "20") (term "0,0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "1,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "18") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "18") (term "0,0,1,0")) - (rule "add_literals" (formula "18") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "18") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "18") (term "0,0,1,0")) - (rule "leq_literals" (formula "18") (term "0,1,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "19") (term "0,0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "19") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "19") (term "0,0,0")) - (rule "add_literals" (formula "19") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "19") (term "1,0,0,0")) - (rule "add_zero_right" (formula "19") (term "0,0,0")) - (rule "leq_literals" (formula "19") (term "0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "20") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "20") (term "0,0,0")) - (rule "add_literals" (formula "20") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "20") (term "1,0,0,0")) - (rule "add_zero_right" (formula "20") (term "0,0,0")) - (rule "leq_literals" (formula "20") (term "0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "0") (ifseqformula "3")) - (rule "qeq_literals" (formula "18") (term "0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "pullOutSelect" (formula "18") (term "0") (inst "selectSK=arr_3")) - (rule "simplifySelectOfAnonEQ" (formula "18") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "26")) (ifInst "" (formula "25"))) - (rule "applyEqReverse" (formula "19") (term "0") (ifseqformula "18")) - (rule "hideAuxiliaryEq" (formula "18")) - (rule "allLeft" (formula "1") (inst "t=z_1")) - (rule "replaceKnownSelect_taclet10_6" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet10_7" (formula "1") (term "0,0,1")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "20")) - (rule "qeq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "21")) - (rule "andLeft" (formula "1")) - (rule "inEqSimp_homoInEq1" (formula "1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) - (rule "add_literals" (formula "1") (term "1,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0")) - (rule "add_zero_right" (formula "1") (term "0")) - (rule "leq_literals" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Exceptional Post (generated_base)" - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "8")) - (rule "translateJavaSubInt" (formula "8") (term "0,2,0,1,0,0,1,1")) - (rule "andLeft" (formula "8")) - (rule "selectCreatedOfAnonAsFormulaEQ" (formula "9") (term "1,0") (ifseqformula "8")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "10")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "11")) - (rule "notLeft" (formula "9")) - (rule "close" (formula "13") (ifseqformula "12")) -) -(branch "Pre (generated_base)" - (builtin "One Step Simplification" (formula "8") (ifInst "" (formula "7")) (ifInst "" (formula "6")) (ifInst "" (formula "7")) (ifInst "" (formula "4"))) - (rule "applyEq" (formula "8") (term "0,0,1") (ifseqformula "3")) - (rule "replace_known_right" (formula "8") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "8")) - (rule "applyEq" (formula "8") (term "0,0,0") (ifseqformula "3")) - (rule "replace_known_right" (formula "8") (term "0,0") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "8")) - (rule "applyEq" (formula "8") (term "1,0") (ifseqformula "3")) - (rule "close" (formula "8") (ifseqformula "4")) -) -) - -} diff --git a/IntegerList/features/Sorted/provePush/prove1.key b/IntegerList/features/Sorted/provePush/prove1.key deleted file mode 100644 index c5fdecd06..000000000 --- a/IntegerList/features/Sorted/provePush/prove1.key +++ /dev/null @@ -1,556 +0,0 @@ -\profile "Java Profile"; - -\settings { -"#Proof-Settings-Config-File -#Fri Apr 17 15:48:21 CEST 2020 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]useUninterpretedMultiplication=true -[SMTSettings]SelectedTaclets= -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_EXPAND -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_RESTRICTED -[Strategy]Timeout=-1 -[Strategy]MaximumNumberOfAutomaticApplications=20000 -[SMTSettings]integersMaximum=2147483645 -[Choice]DefaultChoices=initialisation-initialisation\\:disableStaticInitialisation , wdChecks-wdChecks\\:off , optimisedSelectRules-optimisedSelectRules\\:on , reach-reach\\:on , moreSeqRules-moreSeqRules\\:off , sequences-sequences\\:on , Strings-Strings\\:on , joinGenerateIsWeakeningGoal-joinGenerateIsWeakeningGoal\\:off , runtimeExceptions-runtimeExceptions\\:ban , wdOperator-wdOperator\\:L , JavaCard-JavaCard\\:off , integerSimplificationRules-integerSimplificationRules\\:full , permissions-permissions\\:off , modelFields-modelFields\\:showSatisfiability , assertions-assertions\\:on , intRules-intRules\\:arithmeticSemanticsIgnoringOF , bigint-bigint\\:on , programRules-programRules\\:Java -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_NONCLOSE -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]maxGenericSorts=2 -[SMTSettings]integersMinimum=-2147483645 -[SMTSettings]invariantForall=false -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -" -} - -\javaSource "C:/bachelor/redmine/Fallbeispiele/IntegerList";\include "helper.key";\programVariables {int[] data; int[] old_data; int newTop; int[] old_data_old; int newTop_old; Heap heapAtPre;}\problem { - \forall int k; - ( leq(Z(0(#)), k) - & lt(k, sub(length(data), Z(1(#)))) - -> geq(int::select(heap, data, arr(k)), - int::select(heap, - data, - arr(add(k, Z(1(#))))))) - & true - & true - & !data = null - & geq(length(data), Z(0(#))) - & !old_data = null - & geq(length(old_data), Z(0(#))) - & old_data = data - & boolean::select(heap, - data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data, - java.lang.Object::) - = TRUE - & boolean::select(heap, - old_data_old, - java.lang.Object::) - = TRUE - & wellFormed(heap) --> {heapAtPre:=heap - || old_data_old:=old_data - || newTop_old:=newTop} - \<{ - data=Generated_IntegerList.generated_cons(data,old_data,newTop); - }\> ( \forall int k; - ( leq(Z(0(#)), k) - & lt(k, length(old_data)) - -> \exists int z; - ( leq(Z(0(#)), z) - & lt(z, length(data)) - & int::select(heap, - data, - arr(z)) - = int::select(heap, - old_data, - arr(k)))) - & old_data = old_data_old - & newTop = newTop_old) - -} - -\proof { -(keyLog "0" (keyUser "mko" ) (keyVersion "19f0b8c2a4fe689cd76be6cd1753b36e2e825a89")) - -(autoModeTime "2896") - -(branch "dummy ID" -(builtin "One Step Simplification" (formula "1")) -(rule "impRight" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "andLeft" (formula "1")) -(rule "andLeft" (formula "1")) -(rule "notLeft" (formula "2")) -(rule "eqSymm" (formula "11") (term "1,0,0,1")) -(rule "eqSymm" (formula "11") (term "1,0,1")) -(rule "polySimp_elimSub" (formula "1") (term "1,1,0,0")) -(rule "mul_literals" (formula "1") (term "1,1,1,0,0")) -(rule "polySimp_addComm0" (formula "1") (term "0,2,1,1,0")) -(rule "polySimp_addComm0" (formula "1") (term "1,1,0,0")) -(rule "inEqSimp_ltToLeq" (formula "11") (term "1,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,0,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "11") (term "1,0,0,1,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "11") (term "1,0,0,1,0,0,1,0,0,0,0,1")) -(rule "inEqSimp_ltToLeq" (formula "1") (term "1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) -(rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) -(rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) -(rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0,1,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "11") (term "0,0,0,0,0,0,1")) -(rule "inEqSimp_commuteLeq" (formula "1") (term "0,0,0")) -(rule "inEqSimp_commuteGeq" (formula "1") (term "1,0")) -(rule "applyEq" (formula "6") (term "1,0") (ifseqformula "4")) -(rule "applyEq" (formula "9") (term "0") (ifseqformula "4")) -(rule "applyEq" (formula "9") (term "0,0,0") (ifseqformula "4")) -(rule "applyEq" (formula "3") (term "0,0") (ifseqformula "4")) -(rule "inEqSimp_sepPosMonomial0" (formula "8") (term "1,0,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "8") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "8") (term "1,1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "0,1,1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "8") (term "1,1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "8") (term "1,1,1,0,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "8") (term "1,0,0,1,0,0,0,0,1")) -(rule "polySimp_mulComm0" (formula "8") (term "1,1,0,0,1,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "8") (term "1,1,0,0,1,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "0,1,1,0,0,1,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "8") (term "1,1,1,0,0,1,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "8") (term "1,1,1,0,0,1,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "1") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) -(rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,1,0,0")) -(rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) -(rule "nnf_imp2or" (formula "1") (term "0")) -(rule "nnf_notAnd" (formula "1") (term "0,0")) -(rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) -(rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) -(rule "add_literals" (formula "1") (term "0,0,0,0,0")) -(rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) -(rule "mul_literals" (formula "1") (term "1,0,0,0")) -(rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) -(rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) -(rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) -(rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) -(rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) -(rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) -(rule "polySimp_mulLiterals" (formula "1") (term "1,1,1,0,0")) -(rule "mul_literals" (formula "1") (term "0,1,1,0,0")) -(rule "polySimp_elimOne" (formula "1") (term "1,1,1,0,0")) -(rule "nnf_imp2or" (formula "8") (term "0,0,0,0,1")) -(rule "nnf_notAnd" (formula "8") (term "0,0,0,0,0,1")) -(rule "inEqSimp_notGeq" (formula "8") (term "0,0,0,0,0,0,1")) -(rule "times_zero_1" (formula "8") (term "1,0,0,0,0,0,0,0,0,1")) -(rule "add_zero_right" (formula "8") (term "0,0,0,0,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial0" (formula "8") (term "0,0,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "1,0,0,0,0,0,0,1")) -(rule "inEqSimp_notLeq" (formula "8") (term "1,0,0,0,0,0,1")) -(rule "polySimp_rightDist" (formula "8") (term "1,0,0,1,0,0,0,0,0,1")) -(rule "mul_literals" (formula "8") (term "0,1,0,0,1,0,0,0,0,0,1")) -(rule "polySimp_addAssoc" (formula "8") (term "0,0,1,0,0,0,0,0,1")) -(rule "add_literals" (formula "8") (term "0,0,0,1,0,0,0,0,0,1")) -(rule "add_zero_left" (formula "8") (term "0,0,1,0,0,0,0,0,1")) -(rule "inEqSimp_sepPosMonomial1" (formula "8") (term "1,0,0,0,0,0,1")) -(rule "polySimp_mulLiterals" (formula "8") (term "1,1,0,0,0,0,0,1")) -(rule "polySimp_elimOne" (formula "8") (term "1,1,0,0,0,0,0,1")) -(builtin "Use Operation Contract" (formula "8") (newnames "heapBefore_generated_cons,result,exc,heapAfter_generated_cons,anon_heap_generated_cons") (contract "Generated_IntegerList[Generated_IntegerList::generated_cons([I,[I,int)].JML normal_behavior operation contract.0")) -(branch "Post (generated_cons)" - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "8")) - (rule "translateJavaSubInt" (formula "8") (term "0,2,0,1,1,0,0,1,1")) - (rule "translateJavaSubInt" (formula "8") (term "0,2,0,0,0,0,1,1")) - (rule "andLeft" (formula "8")) - (rule "selectCreatedOfAnonAsFormulaEQ" (formula "9") (term "1,1,0") (ifseqformula "8")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "10")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "10")) - (rule "notLeft" (formula "11")) - (rule "andLeft" (formula "10")) - (rule "andLeft" (formula "11")) - (rule "andLeft" (formula "11")) - (rule "exLeft" (formula "11") (inst "sk=z_0")) - (rule "andLeft" (formula "11")) - (rule "andLeft" (formula "11")) - (rule "replace_known_right" (formula "9") (term "0") (ifseqformula "16")) - (builtin "One Step Simplification" (formula "9")) - (rule "polySimp_elimSub" (formula "10") (term "0,2,0")) - (rule "mul_literals" (formula "10") (term "1,0,2,0")) - (rule "polySimp_addComm0" (formula "10") (term "0,2,0")) - (rule "inEqSimp_ltToLeq" (formula "14") (term "1,0,0,1,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,0,0,1,0,0,1,0")) - (rule "inEqSimp_ltToLeq" (formula "14") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,0,0,1,0,0")) - (rule "inEqSimp_ltToLeq" (formula "12")) - (rule "polySimp_mulComm0" (formula "12") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "12") (term "0")) - (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0,0,1,0")) - (rule "inEqSimp_commuteLeq" (formula "14") (term "0,0,0")) - (rule "inEqSimp_commuteLeq" (formula "11")) - (rule "assignment" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "applyEq" (formula "14") (term "0,0,1,0,0,1,0,0") (ifseqformula "3")) - (rule "applyEq" (formula "14") (term "1,1,1,0,1,0") (ifseqformula "3")) - (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "1,0,0,1,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,1,0,0,1,0")) - (rule "polySimp_rightDist" (formula "14") (term "1,1,0,0,1,0")) - (rule "polySimp_mulLiterals" (formula "14") (term "1,1,1,0,0,1,0")) - (rule "mul_literals" (formula "14") (term "0,1,1,0,0,1,0")) - (rule "polySimp_elimOne" (formula "14") (term "1,1,1,0,0,1,0")) - (rule "inEqSimp_sepNegMonomial0" (formula "12")) - (rule "polySimp_mulLiterals" (formula "12") (term "0")) - (rule "polySimp_elimOne" (formula "12") (term "0")) - (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "1,0,0")) - (rule "polySimp_mulComm0" (formula "14") (term "1,1,0,0")) - (rule "polySimp_rightDist" (formula "14") (term "1,1,0,0")) - (rule "polySimp_mulLiterals" (formula "14") (term "1,1,1,0,0")) - (rule "mul_literals" (formula "14") (term "0,1,1,0,0")) - (rule "polySimp_elimOne" (formula "14") (term "1,1,1,0,0")) - (rule "pullOutSelect" (formula "13") (term "0") (inst "selectSK=arr_0")) - (rule "simplifySelectOfAnonEQ" (formula "13") (ifseqformula "8")) - (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "17"))) - (rule "eqSymm" (formula "14")) - (rule "applyEqReverse" (formula "13") (term "1") (ifseqformula "14")) - (rule "hideAuxiliaryEq" (formula "14")) - (rule "elementOfSetMinus" (formula "13") (term "0,0,0")) - (builtin "One Step Simplification" (formula "13") (ifInst "" (formula "16"))) - (rule "pullOutSelect" (formula "10") (term "0") (inst "selectSK=arr_1")) - (rule "simplifySelectOfAnonEQ" (formula "10") (ifseqformula "8")) - (builtin "One Step Simplification" (formula "10") (ifInst "" (formula "17"))) - (rule "eqSymm" (formula "11")) - (rule "applyEqReverse" (formula "10") (term "1") (ifseqformula "11")) - (rule "hideAuxiliaryEq" (formula "11")) - (rule "elementOfSetMinus" (formula "10") (term "0,0,0")) - (builtin "One Step Simplification" (formula "10") (ifInst "" (formula "16"))) - (rule "nnf_imp2or" (formula "14") (term "0")) - (rule "nnf_notAnd" (formula "14") (term "0,0")) - (rule "inEqSimp_notGeq" (formula "14") (term "0,0,0")) - (rule "times_zero_1" (formula "14") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "14") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "0,0,0")) - (rule "mul_literals" (formula "14") (term "1,0,0,0")) - (rule "inEqSimp_notLeq" (formula "14") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "14") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "14") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "14") (term "0,0,1,0,0")) - (rule "add_literals" (formula "14") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "14") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "14") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "14") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "14") (term "1,1,0,0")) - (rule "emptyModality" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) - (rule "eqSymm" (formula "18") (term "1")) - (rule "replace_known_left" (formula "18") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "18")) - (rule "allRight" (formula "18") (inst "sk=k_0")) - (rule "orRight" (formula "18")) - (rule "orRight" (formula "18")) - (rule "inEqSimp_leqRight" (formula "18")) - (rule "mul_literals" (formula "1") (term "1,0,0")) - (rule "add_literals" (formula "1") (term "0,0")) - (rule "add_zero_left" (formula "1") (term "0")) - (rule "inEqSimp_geqRight" (formula "19")) - (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) - (rule "polySimp_addComm1" (formula "1") (term "0")) - (rule "applyEq" (formula "20") (term "1,1,1,0") (ifseqformula "5")) - (rule "applyEq" (formula "1") (term "0,0,1,0") (ifseqformula "5")) - (rule "inEqSimp_sepNegMonomial0" (formula "1")) - (rule "polySimp_mulLiterals" (formula "1") (term "0")) - (rule "polySimp_elimOne" (formula "1") (term "0")) - (rule "pullOutSelect" (formula "20") (term "1,1,0") (inst "selectSK=arr_2")) - (rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20")) (ifInst "" (formula "7"))) - (rule "elementOfSetMinus" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20")) (ifInst "" (formula "7"))) - (rule "applyEqReverse" (formula "21") (term "1,1,0") (ifseqformula "1")) - (rule "hideAuxiliaryEq" (formula "1")) - (rule "nnf_ex2all" (formula "20")) - (rule "nnf_notAnd" (formula "1") (term "0")) - (rule "nnf_notAnd" (formula "1") (term "0,0")) - (rule "inEqSimp_notLeq" (formula "1") (term "1,0,0")) - (rule "polySimp_rightDist" (formula "1") (term "1,0,0,1,0,0")) - (rule "mul_literals" (formula "1") (term "0,1,0,0,1,0,0")) - (rule "polySimp_addAssoc" (formula "1") (term "0,0,1,0,0")) - (rule "add_literals" (formula "1") (term "0,0,0,1,0,0")) - (rule "add_zero_left" (formula "1") (term "0,0,1,0,0")) - (rule "inEqSimp_sepPosMonomial1" (formula "1") (term "1,0,0")) - (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) - (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) - (rule "inEqSimp_notGeq" (formula "1") (term "0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) - (rule "inEqSimp_sepPosMonomial0" (formula "1") (term "0,0,0")) - (rule "mul_literals" (formula "1") (term "1,0,0,0")) - (rule "arrayLengthNotNegative" (formula "5") (term "0")) - (rule "arrayLengthIsAnInt" (formula "5") (term "0")) - (builtin "One Step Simplification" (formula "5")) - (rule "true_left" (formula "5")) - (rule "ex_pull_out3" (formula "17") (term "0")) - (rule "cnf_rightDist" (formula "17") (term "0,0")) - (rule "commute_or" (formula "17") (term "1,0,0")) - (rule "cnf_rightDist" (formula "17") (term "0,0,0")) - (rule "commute_or" (formula "17") (term "1,0,0,0")) - (rule "cut_direct" (formula "12") (term "0")) - (branch "CUT: result. = TRUE TRUE" - (builtin "One Step Simplification" (formula "13")) - (rule "true_left" (formula "13")) - (rule "commute_and_2" (formula "17") (term "0,0")) - (rule "arrayLengthIsAnInt" (formula "15") (term "0")) - (builtin "One Step Simplification" (formula "15")) - (rule "true_left" (formula "15")) - (rule "arrayLengthNotNegative" (formula "15") (term "0")) - (rule "commute_and" (formula "18") (term "0,0,0")) - (rule "allLeft" (formula "1") (inst "t=z_0")) - (rule "replaceKnownSelect_taclet0_0" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_1" (formula "1") (term "0,0,1")) - (rule "eqSymm" (formula "1") (term "0,1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0,0") (ifseqformula "15")) - (rule "qeq_literals" (formula "1") (term "0,0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "17")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,0")) - (rule "add_zero_right" (formula "1") (term "0,0,0")) - (rule "leq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "notLeft" (formula "1")) - (rule "allLeft" (formula "18") (inst "t=k_0")) - (rule "replaceKnownSelect_taclet0_4" (formula "18") (term "1,1,0,0,0")) - (rule "replaceKnownAuxiliaryConstant_taclet0_5" (formula "18") (term "1,1,0,0,0")) - (rule "exLeft" (formula "18") (inst "sk=z_2")) - (rule "andLeft" (formula "18")) - (rule "andLeft" (formula "18")) - (rule "inEqSimp_commuteGeq" (formula "20") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "18") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "19") (term "1,0")) - (rule "inEqSimp_homoInEq0" (formula "20") (term "1")) - (rule "polySimp_addComm1" (formula "20") (term "0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "20") (term "1")) - (rule "polySimp_mulComm0" (formula "20") (term "1,1")) - (rule "polySimp_rightDist" (formula "20") (term "1,1")) - (rule "mul_literals" (formula "20") (term "0,1,1")) - (rule "polySimp_mulLiterals" (formula "20") (term "1,1,1")) - (rule "polySimp_elimOne" (formula "20") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "19") (term "0,0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "1,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "20") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "20") (term "0,0,1,0")) - (rule "add_literals" (formula "20") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "20") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "20") (term "0,0,1,0")) - (rule "leq_literals" (formula "20") (term "0,1,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "1,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "18") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "18") (term "0,0,1,0")) - (rule "add_literals" (formula "18") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "18") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "18") (term "0,0,1,0")) - (rule "leq_literals" (formula "18") (term "0,1,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "19") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "19") (term "0,0,0")) - (rule "add_literals" (formula "19") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "19") (term "1,0,0,0")) - (rule "add_zero_right" (formula "19") (term "0,0,0")) - (rule "leq_literals" (formula "19") (term "0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "0") (ifseqformula "3")) - (rule "qeq_literals" (formula "18") (term "0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0") (ifseqformula "3")) - (rule "qeq_literals" (formula "20") (term "0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "pullOutSelect" (formula "18") (term "0") (inst "selectSK=arr_4")) - (rule "simplifySelectOfAnonEQ" (formula "18") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "25")) (ifInst "" (formula "12"))) - (rule "eqSymm" (formula "19")) - (rule "applyEqReverse" (formula "18") (term "1") (ifseqformula "19")) - (rule "hideAuxiliaryEq" (formula "19")) - (rule "elementOfSetMinus" (formula "18") (term "0,0")) - (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "24")) (ifInst "" (formula "12"))) - (rule "allLeft" (formula "1") (inst "t=z_2")) - (rule "replaceKnownSelect_taclet00_6" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet00_7" (formula "1") (term "0,0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "20")) - (rule "qeq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq0" (formula "21") (ifseqformula "1")) - (rule "andLeft" (formula "21")) - (rule "inEqSimp_homoInEq1" (formula "21")) - (rule "polySimp_pullOutFactor1b" (formula "21") (term "0")) - (rule "add_literals" (formula "21") (term "1,1,0")) - (rule "times_zero_1" (formula "21") (term "1,0")) - (rule "add_zero_right" (formula "21") (term "0")) - (rule "leq_literals" (formula "21")) - (rule "closeFalse" (formula "21")) - ) - (branch "CUT: result. = TRUE FALSE" - (builtin "One Step Simplification" (formula "12")) - (rule "commute_and_2" (formula "17") (term "0,0")) - (rule "arrayLengthNotNegative" (formula "15") (term "0")) - (rule "arrayLengthIsAnInt" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) - (rule "true_left" (formula "16")) - (rule "allLeft" (formula "1") (inst "t=z_0")) - (rule "replaceKnownSelect_taclet0_0" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet0_1" (formula "1") (term "0,0,1")) - (rule "eqSymm" (formula "1") (term "0,1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1,0")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1,0") (ifseqformula "17")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1,0")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "1") (term "0,0,1,0")) - (rule "leq_literals" (formula "1") (term "0,1,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "0") (ifseqformula "15")) - (rule "qeq_literals" (formula "1") (term "0,0")) - (builtin "One Step Simplification" (formula "1")) - (rule "notLeft" (formula "1")) - (rule "commute_and" (formula "18") (term "0,0,0")) - (rule "allLeft" (formula "18") (inst "t=k_0")) - (rule "replaceKnownSelect_taclet0_4" (formula "18") (term "1,1,0,0,0")) - (rule "replaceKnownAuxiliaryConstant_taclet0_5" (formula "18") (term "1,1,0,0,0")) - (rule "exLeft" (formula "18") (inst "sk=z_1")) - (rule "andLeft" (formula "18")) - (rule "andLeft" (formula "18")) - (rule "inEqSimp_commuteGeq" (formula "20") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "18") (term "1,0")) - (rule "inEqSimp_commuteGeq" (formula "19") (term "1,0")) - (rule "inEqSimp_homoInEq0" (formula "20") (term "1")) - (rule "polySimp_addComm1" (formula "20") (term "0,1")) - (rule "inEqSimp_sepPosMonomial1" (formula "20") (term "1")) - (rule "polySimp_mulComm0" (formula "20") (term "1,1")) - (rule "polySimp_rightDist" (formula "20") (term "1,1")) - (rule "mul_literals" (formula "20") (term "0,1,1")) - (rule "polySimp_mulLiterals" (formula "20") (term "1,1,1")) - (rule "polySimp_elimOne" (formula "20") (term "1,1,1")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "20") (term "0,0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0,0") (ifseqformula "3")) - (rule "qeq_literals" (formula "19") (term "0,0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "1,0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "18") (term "0,1,0")) - (rule "polySimp_pullOutFactor1b" (formula "18") (term "0,0,1,0")) - (rule "add_literals" (formula "18") (term "1,1,0,0,1,0")) - (rule "times_zero_1" (formula "18") (term "1,0,0,1,0")) - (rule "add_zero_right" (formula "18") (term "0,0,1,0")) - (rule "leq_literals" (formula "18") (term "0,1,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "inEqSimp_contradInEq1" (formula "20") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "20") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "20") (term "0,0,0")) - (rule "add_literals" (formula "20") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "20") (term "1,0,0,0")) - (rule "add_zero_right" (formula "20") (term "0,0,0")) - (rule "leq_literals" (formula "20") (term "0,0")) - (builtin "One Step Simplification" (formula "20")) - (rule "inEqSimp_contradInEq1" (formula "18") (term "0") (ifseqformula "3")) - (rule "qeq_literals" (formula "18") (term "0,0")) - (builtin "One Step Simplification" (formula "18")) - (rule "inEqSimp_contradInEq1" (formula "19") (term "0") (ifseqformula "2")) - (rule "inEqSimp_homoInEq1" (formula "19") (term "0,0")) - (rule "polySimp_pullOutFactor1b" (formula "19") (term "0,0,0")) - (rule "add_literals" (formula "19") (term "1,1,0,0,0")) - (rule "times_zero_1" (formula "19") (term "1,0,0,0")) - (rule "add_zero_right" (formula "19") (term "0,0,0")) - (rule "leq_literals" (formula "19") (term "0,0")) - (builtin "One Step Simplification" (formula "19")) - (rule "pullOutSelect" (formula "18") (term "0") (inst "selectSK=arr_3")) - (rule "simplifySelectOfAnonEQ" (formula "18") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "18") (ifInst "" (formula "26")) (ifInst "" (formula "25"))) - (rule "applyEqReverse" (formula "19") (term "0") (ifseqformula "18")) - (rule "hideAuxiliaryEq" (formula "18")) - (rule "allLeft" (formula "1") (inst "t=z_1")) - (rule "replaceKnownSelect_taclet10_6" (formula "1") (term "0,0,1")) - (rule "replaceKnownAuxiliaryConstant_taclet10_7" (formula "1") (term "0,0,1")) - (rule "replace_known_left" (formula "1") (term "0,1") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_commuteGeq" (formula "1") (term "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (term "1") (ifseqformula "21")) - (rule "inEqSimp_homoInEq1" (formula "1") (term "0,1")) - (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,1")) - (rule "add_literals" (formula "1") (term "1,1,0,0,1")) - (rule "times_zero_1" (formula "1") (term "1,0,0,1")) - (rule "add_zero_right" (formula "1") (term "0,0,1")) - (rule "leq_literals" (formula "1") (term "0,1")) - (builtin "One Step Simplification" (formula "1")) - (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "20")) - (rule "qeq_literals" (formula "1") (term "0")) - (builtin "One Step Simplification" (formula "1")) - (rule "closeFalse" (formula "1")) - ) -) -(branch "Exceptional Post (generated_cons)" - (builtin "One Step Simplification" (formula "10")) - (builtin "One Step Simplification" (formula "8")) - (rule "translateJavaSubInt" (formula "8") (term "0,2,0,1,1,0,0,1,1")) - (rule "translateJavaSubInt" (formula "8") (term "0,2,0,0,0,0,1,1")) - (rule "andLeft" (formula "8")) - (rule "selectCreatedOfAnonAsFormulaEQ" (formula "9") (term "1,0") (ifseqformula "8")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "10")) - (rule "andLeft" (formula "9")) - (rule "andLeft" (formula "11")) - (rule "notLeft" (formula "9")) - (rule "close" (formula "13") (ifseqformula "12")) -) -(branch "Pre (generated_cons)" - (builtin "One Step Simplification" (formula "8") (ifInst "" (formula "7")) (ifInst "" (formula "6")) (ifInst "" (formula "7")) (ifInst "" (formula "4"))) - (rule "applyEq" (formula "8") (term "0,0,1") (ifseqformula "3")) - (rule "replace_known_right" (formula "8") (term "0,1") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "8")) - (rule "applyEq" (formula "8") (term "1,0,1") (ifseqformula "3")) - (rule "replace_known_left" (formula "8") (term "1") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "8")) - (rule "notRight" (formula "8")) - (rule "applyEq" (formula "4") (term "0") (ifseqformula "1")) - (rule "eqSymm" (formula "4")) - (rule "close" (formula "8") (ifseqformula "4")) -) -) - -} diff --git a/IntegerList/features/Variable/diagram/Varm.cbcmodel b/IntegerList/features/Variable/diagram/Varm.cbcmodel deleted file mode 100644 index 7d60aca17..000000000 --- a/IntegerList/features/Variable/diagram/Varm.cbcmodel +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/IntegerList/features/Variable/diagram/Varm.diagram b/IntegerList/features/Variable/diagram/Varm.diagram deleted file mode 100644 index 6e6b99206..000000000 --- a/IntegerList/features/Variable/diagram/Varm.diagram +++ /dev/null @@ -1,336 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/IntegerList/src/IntList.java b/IntegerList/src/IntList.java deleted file mode 100644 index 24bf4c1d3..000000000 --- a/IntegerList/src/IntList.java +++ /dev/null @@ -1,15 +0,0 @@ -public class IntList { - - public IntList() { - //data = new int[0]; - } - - /*@ - @ public normal_behavior - @ assignable data; - @ requires data == old_data; - @ ensures (\forall int k; 0 <= k && k < \result.length-1; \result[k] >= \result[k+1]) && (\forall int k; 0 <= k && k < old_data.length ==> (\exists int z; 0 <= z && z < \result.length && \result[z] == old_data[k])); - @*/ - private static int[] sort(int[] data, int[] old_data) { - } -} diff --git a/IntegerList/src_gen/Generated_IntegerList.java b/IntegerList/src_gen/Generated_IntegerList.java deleted file mode 100644 index 5f0673eae..000000000 --- a/IntegerList/src_gen/Generated_IntegerList.java +++ /dev/null @@ -1,45 +0,0 @@ -public class Generated_IntegerList { - - /*@ - @ public normal_behavior - @ requires (true) & (true); - @ ensures (\result[\result.length - 1] == newTop) & ((\exists int z;(0 <= z && z < \result.length&& \result[z] == newTop))&& (\forall int k; (0 <= k && k < old_data.length==> (\exists int z; (0 <= z && z < \result.length&& \result[z] == old_data[k])))) && \result[\result.length - 1] == newTop); - @ assignable \everything; - @*/ - public static int[] generated_cons(int[] data, int[] old_data, int newTop) { } - - /*@ - @ public normal_behavior - @ requires true; - @ ensures (\exists int z;(0 <= z && z < \result.length&& \result[z] == newTop))&& (\forall int k; (0 <= k && k < old_data.length==> (\exists int z; (0 <= z && z < \result.length&& \result[z] == old_data[k])))) && \result[\result.length - 1] == newTop; - @ assignable \everything; - @*/ - public static int[] generated_base(int[] data, int[] old_data, int newTop) { } - - /*@ - @ normal_behavior - @ requires true; - @ ensures (\exists int z;(0 <= z && z < \result.length&& \result[z] == newTop))&& (\forall int k; (0 <= k && k < old_data.length==> (\exists int z; (0 <= z && z < \result.length&& \result[z] == old_data[k])))) && \result[\result.length - 1] == newTop; - @ assignable \everything; - @*/ - public static int[] base(int[] data, int[] old_data, int newTop) { - } - - /*@ - @ normal_behavior - @ requires true; - @ ensures \result[\result.length - 1] == newTop; - @ assignable data; - @*/ - public static int[] cons(int[] data, int[] old_data, int newTop) { - } - - /*@ - @ normal_behavior - @ requires (\forall int k; (0 <= k && k < data.length-1 ==> data[k] >= data[k+1])); - @ ensures (\exists int u; (0 <= u && u < \result.length ==> \result[u] == newTop)) &&((\forall int k; (0 <= k && k < old_data.length==> (\exists int z; (0 <= z && z < \result.length&& \result[z] == old_data[k]))))&& (\forall int k; (0 <= k && k < \result.length-1 ==> (\result[k] >= \result[k+1]) | (\result[k] <= \result[k+1])))); - @ assignable data; - @*/ - public static int[] sorted(int[] data, int[] old_data, int newTop) { - } -} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateClassFromInterfaces.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateClassFromInterfaces.java deleted file mode 100644 index 280e8b53c..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateClassFromInterfaces.java +++ /dev/null @@ -1,650 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.BufferedReader; -import java.io.ByteArrayInputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.emftext.commons.layout.LayoutInformation; -import org.emftext.language.java.arrays.ArrayDimension; -import org.emftext.language.java.classifiers.impl.ClassImpl; -import org.emftext.language.java.classifiers.impl.InterfaceImpl; -import org.emftext.language.java.containers.CompilationUnit; -import org.emftext.language.java.members.ClassMethod; -import org.emftext.language.java.members.Field; -import org.emftext.language.java.members.InterfaceMethod; -import org.emftext.language.java.members.Member; -import org.emftext.language.java.parameters.Parameter; -import org.emftext.language.java.resource.java.util.JavaResourceUtil; -import org.emftext.language.java.types.TypeReference; -import org.emftext.language.java.types.impl.VoidImpl; -import org.emftext.language.java.variables.impl.VariableImpl; - -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariable; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; -import de.tu_bs.cs.isf.cbc.util.FileUtil; -import de.tu_bs.cs.isf.cbc.util.ProveWithKey; - -public class GenerateClassFromInterfaces { - private List methods = new ArrayList(); - private List fields = new ArrayList(); - private String newTraitName; - private List composedTraits = new ArrayList<>(); - private List> removedMethods = new ArrayList<>(); - private IProject project; - List abstractMethods; - List concreteMethods; - - public GenerateClassFromInterfaces() { - - } - - public void execute(IFile file) { - project = FileUtil.getProjectFromFileInProject(URI.createURI(file.getFullPath().toPortableString())); - handleTraitFiles(Collections.singletonList(file)); - } - - public void execute(IProject project) { - this.project = project; - List traitCompositionFiles = FileUtil.getFilesFromProject(project, ".tc"); - Iterator itr = traitCompositionFiles.iterator(); - while(itr.hasNext()){ - if (itr.next().getLocation().toPortableString().contains("/bin/")) - itr.remove(); - } - handleTraitFiles(traitCompositionFiles); - } - - private void handleTraitFiles(List traitCompositionFiles) { - List javaFiles = FileUtil.getJavaFilesFromProject(project); - Iterator itr = javaFiles.iterator(); - - while(itr.hasNext()){ - if (itr.next().getLocation().toPortableString().contains("/src_key/")) - itr.remove(); - } - - for (IFile javaFile : javaFiles) { - String javaFileContent = readFileToString(javaFile.getLocation().toPortableString()); - readClass(javaFileContent); - } - - for (IFile traitCompositionFile : traitCompositionFiles) { - String traitCompositionFileContent = readFileToString(traitCompositionFile.getLocation().toPortableString()); - parseTraitCompositionFile(traitCompositionFileContent); - IFile location = null; - try { - location = generateJavaClassForKey(); - verifyImplications(location.getFullPath().toPortableString()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - private void verifyImplications(String path) { - for (Method abstractMethod : abstractMethods) { - for (Method concreteMethod : concreteMethods) { - if (abstractMethod.getMethodName().equals(concreteMethod.getMethodName())) { - for (int i = 0; i < abstractMethod.getPreCondition().size(); i++) { - JavaVariables vars = parametersToJavaVars(abstractMethod); - GlobalConditions conds = CbcmodelFactory.eINSTANCE.createGlobalConditions(); - ProveWithKey proveImplication = new ProveWithKey(null, vars, conds, null, null, path, null, new FileUtil(path), "/src_key", null); - proveImplication.proveCImpliesCWithKey(null, createConditionForKeY(abstractMethod.getPreCondition().get(i), vars, conds), createConditionForKeY(concreteMethod.getPreCondition().get(i), vars, conds)); - proveImplication.proveCImpliesCWithKey(null, createConditionForKeY(concreteMethod.getPostCondition().get(i), vars, conds), createConditionForKeY(abstractMethod.getPostCondition().get(i), vars, conds)); - } - } - } - } - } - - private Condition createConditionForKeY(String stringCondition, JavaVariables javaVars, GlobalConditions conds) { - stringCondition = replaceSpecialSymbols(stringCondition); - String resultKW = "\\\\result"; - stringCondition = stringCondition.replaceAll(resultKW, "result"); - stringCondition = cbcWorkaroundForOldKeyword(stringCondition, javaVars, conds); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(stringCondition); - return condition; - } - - private JavaVariables parametersToJavaVars(Method abstractMethod) { - JavaVariables javaVariables = CbcmodelFactory.eINSTANCE.createJavaVariables(); - for (String parameter : abstractMethod.getParameters()) { - JavaVariable javaVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - javaVariable.setName(parameter); - javaVariable.setKind(VariableKind.PARAM); - javaVariables.getVariables().add(javaVariable); - } - if (!abstractMethod.getReturnType().equals("void")) { - JavaVariable javaVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - javaVariable.setName(abstractMethod.getReturnType() + " result"); - javaVariable.setKind(VariableKind.RETURN); - javaVariables.getVariables().add(javaVariable); - } - JavaVariable javaVariableSelf = CbcmodelFactory.eINSTANCE.createJavaVariable(); - javaVariableSelf.setName(newTraitName + " self"); - javaVariableSelf.setKind(VariableKind.LOCAL); - javaVariables.getVariables().add(javaVariableSelf); - JavaVariable javaVariableOld = CbcmodelFactory.eINSTANCE.createJavaVariable(); - javaVariableOld.setName(newTraitName + " old_this"); - javaVariableOld.setKind(VariableKind.LOCAL); - javaVariables.getVariables().add(javaVariableOld); - return javaVariables; - } - - private IFile generateJavaClassForKey() throws Exception { - String allMethodsAsString = collectMethodsOfAllComposedTraits(); - IFile location = generateClassForKey(allMethodsAsString, newTraitName); - return location; - } - - private IFile generateClassForKey(String content, String fileName) { - IFolder srcFolder = project.getFolder("src_key"); - if (!srcFolder.exists()) { - try { - srcFolder.create(false, true, null); - } catch (CoreException e) { - e.printStackTrace(); - } - } - - IFile srcFile = project.getFile("src_key/" + fileName + ".java"); - InputStream stream = createFileContentInputStream(content); - - if (!srcFile.exists()) { - try { - srcFile.create(stream, false, null); - } catch (CoreException e) { - e.printStackTrace(); - } - } else { - try { - srcFile.setContents(stream, false, false, null); - } catch (CoreException e) { - e.printStackTrace(); - } - } - return srcFile; - } - - private String collectMethodsOfAllComposedTraits() throws Exception { - StringBuilder builder = new StringBuilder(); - abstractMethods = getMethods(true); - concreteMethods = getMethods(false); - builder.append(buildClassHeader()); - for (String field : fields) { - builder.append(field); - builder.append("\n"); - } - - checkForConsistency(concreteMethods); - - for (Method method : concreteMethods) { - builder.append(getJMLSpecification(method.getEmfMethod())); - builder.append(JavaResourceUtil.getText(method.getEmfMethod())); - builder.append("\n"); - } - - for (Method method : abstractMethods) { - boolean isImplemented = false; - for (Method concreteMethod : concreteMethods) { - if (concreteMethod.getMethodName().equals(method.getMethodName())) { - isImplemented = true; - } - } - if (!isImplemented) { - builder.append(getJMLSpecification(method.getEmfMethod())); - builder.append(method.createSignature() + ";"); - builder.append("\n"); - } - } - builder.append("}"); - return builder.toString(); - } - - private void checkForConsistency(List concreteMethods) throws Exception { - for (int i = 0; i < concreteMethods.size(); i++) { - for (int j = i+1; j < concreteMethods.size(); j++) { - if (concreteMethods.get(i).getMethodName().equals(concreteMethods.get(j).getMethodName())) { - throw new Exception(concreteMethods.get(i).getMethodName() + " implemented in " + concreteMethods.get(i).getClassName() - + " and " + concreteMethods.get(j).getClassName()); - } - } - } - } - - private String buildClassHeader() { - String returnString = "public class " + newTraitName + " {\n\n"; - return returnString; - } - - private String getJMLSpecification(org.emftext.language.java.members.Method emfMethod) { - String defaultAnnotation = " /*@\r\n" + " @ public normal_behavior\r\n" - + " @ requires true;\r\n" + " @ ensures true;\r\n" + " @ assignable \\nothing;\r\n" - + " @*/"; - String jmlAnnotation = emfMethod.getAnnotationsAndModifiers().get(0).getLayoutInformations() - .get(0).getHiddenTokenText(); - if (!jmlAnnotation.contains("/*@")) - jmlAnnotation = defaultAnnotation; - return jmlAnnotation; - } - - private List getMethods(boolean isAbstract) { - List returnList = new ArrayList<>(); - for (Method method : methods) { - if (composedTraits.contains(method.getClassName()) - && (method.isAbstract() == isAbstract && (isAbstract == isMadeAbstract(method)))) { - returnList.add(method); - } - } - return returnList; - } - - private boolean isMadeAbstract(Method method) { - if (method.isAbstract()) return true; - for (Entry entry : removedMethods) { - if (method.getClassName().equals(entry.getKey()) - && method.getMethodName().equals(entry.getValue())) { - return true; - } - } - return false; - } - - private InputStream createFileContentInputStream(String content) { - InputStream targetStream = new ByteArrayInputStream(content.getBytes()); - return targetStream; - } - - private void parseTraitCompositionFile(String traitCompositionFileContent) { - traitCompositionFileContent = traitCompositionFileContent.replace("\n", "").replace("\r", ""); - String[] splitForTraitName = traitCompositionFileContent.split("="); - composedTraits.clear(); - removedMethods.clear(); - if (splitForTraitName.length == 1) return; - newTraitName = splitForTraitName[0].trim(); - String[] splitTraits = splitForTraitName[1].split("\\+"); - if (splitTraits.length == 1) return; - for (String trait : splitTraits) { - if (trait.contains("makeAbstract")) { - String splitted[] = trait.split("\\["); - if (splitted.length == 1) return; - composedTraits.add(splitted[0].trim()); - String abstractMethods = splitted[1].replace("]", "").replace("makeAbstract ", ""); - for (String abstractMethod : abstractMethods.split(",")) { - removedMethods.add(createEntry(splitted[0].trim(), abstractMethod.trim())); - } - } else { - composedTraits.add(trait.trim()); - } - } - } - - private Entry createEntry(String trait, String abstractMethod) { - return new AbstractMap.SimpleEntry<>(trait, abstractMethod); - } - - private void readClass(String javaFileContent) { - EObject abstractSyntaxTreeRoot = JavaResourceUtil.getResourceContent(javaFileContent); - CompilationUnit compilationUnit = (CompilationUnit) abstractSyntaxTreeRoot; - - if (compilationUnit.getClassifiers().isEmpty() - || compilationUnit.getClassifiers().get(0).getMembers().isEmpty()) { - return; - } - - if (compilationUnit.getClassifiers().get(0) instanceof InterfaceImpl) { - InterfaceImpl javaInterfaceWithDefault = (InterfaceImpl) compilationUnit.getClassifiers().get(0); - generateClassForKey(javaFileContent.replaceFirst("interface", "class"), javaInterfaceWithDefault.getName()); - - for (Member member : javaInterfaceWithDefault.getMembers()) { - if (member instanceof Field) { - if (!fields.contains(JavaResourceUtil.getText(member))) { - fields.add(JavaResourceUtil.getText(member)); - } - } else if (member instanceof ClassMethod) { - handleMethod((ClassMethod) member, javaInterfaceWithDefault.getName(), false); - } else if (member instanceof InterfaceMethod) { - handleMethod((InterfaceMethod) member, javaInterfaceWithDefault.getName(), true); - } - } - } - } - - private void handleMethod(org.emftext.language.java.members.Method emfMethod, String className, boolean isAbstract) { - //parse JML contract to pre- and postconditions of cbcFormula - String defaultAnnotation = " /*@\r\n" + " @ public normal_behavior\r\n" - + " @ requires true;\r\n" + " @ ensures true;\r\n" + " @ assignable \\nothing;\r\n" - + " @*/"; - String jmlAnnotation = emfMethod.getAnnotationsAndModifiers().get(0).getLayoutInformations() - .get(0).getHiddenTokenText(); - if (!jmlAnnotation.contains("/*@")) - jmlAnnotation = defaultAnnotation; - int index = 0; - - List preCondition = new ArrayList<>(); - List postCondition = new ArrayList<>(); - do { - String currentJmlPart = ""; - index = jmlAnnotation.indexOf("also"); - if (index != -1) { - currentJmlPart = jmlAnnotation.substring(0, index); - } else { - currentJmlPart = jmlAnnotation; - } - jmlAnnotation = jmlAnnotation.substring(index + 4); - - preCondition.add(getPreCondition(currentJmlPart)); - postCondition.add(getPostCondition(currentJmlPart)); - - } while (index != -1); - Method method = new Method(emfMethod, emfMethod.getName(), className, isAbstract, preCondition, postCondition, - null, getParameters(emfMethod), getReturnType(emfMethod)); - methods.add(method); - } - - private List getParameters(org.emftext.language.java.members.Method classMethod) { - List parameters = new ArrayList(); - // add parameters to variables - for (Parameter p : classMethod.getParameters()) { - parameters.add(getParameter((VariableImpl) p)); - } - return parameters; - } - - private String getReturnType(org.emftext.language.java.members.Method classMethod) { - TypeReference type = classMethod.getTypeReference(); - String typeString = JavaResourceUtil.getText(type); - if (!(type instanceof VoidImpl)) { - String arrayDimensions = ""; - if (classMethod.getArrayDimensionsBefore() != null) { - for (ArrayDimension ad : classMethod.getArrayDimensionsBefore()) { - for (LayoutInformation li : ad.getLayoutInformations()) { - arrayDimensions = arrayDimensions + li.getVisibleTokenText(); - } - } - } - typeString = JavaResourceUtil.getText(type) + arrayDimensions; - return typeString; - } - return "void"; - } - - - /** - * adds the pre and post condition from jmlAnnotation to formula - * - * @param formula - * @param jmlAnnotation contains pre and post condition for formula - * @param variables - * @param conditions - */ - private String getPreCondition(String jmlAnnotation) { - //jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - - //jmlAnnotation = cbcWorkaroundForOldKeyword(jmlAnnotation, variables, conditions); - - // adds pre condition - int startPre = jmlAnnotation.indexOf("requires"); - String pre = ""; - - while (startPre != -1) { - int endPre = findEnd(jmlAnnotation, startPre); - pre = pre + " & " + jmlAnnotation.substring(startPre + 9, endPre); - startPre = jmlAnnotation.indexOf("requires", endPre); - } - // delete first & - pre = pre.substring(2); - return pre; - } - - private String getPostCondition(String jmlAnnotation) { - //jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - //jmlAnnotation = cbcWorkaroundForOldKeyword(jmlAnnotation, variables, conditions); - // adds post condition - int startPost = jmlAnnotation.indexOf("ensures"); - String post = ""; - while (startPost != -1) { - int endPost = findEnd(jmlAnnotation, startPost); - String currentPost = jmlAnnotation.substring(startPost + 8, endPost); - post = post + " & " + currentPost; - startPost = jmlAnnotation.indexOf("ensures", endPost); - } - // delete first & - post = post.substring(2); - return post; - } - - private String cbcWorkaroundForOldKeyword(String jmlAnnotation, JavaVariables variables, GlobalConditions conditions) { - int old = jmlAnnotation.indexOf("\\old"); - while (old != -1) { - int endOld = findEndOfBracket(jmlAnnotation, old + 5); - String oldPart = jmlAnnotation.substring(old + 5, endOld); - String name = ""; - String rest = ""; - int index = oldPart.indexOf("."); - if (index != -1) { - name = oldPart.substring(0, index); - rest = oldPart.substring(index); - } else { - name = oldPart; - } - String newVariableName = "old_" + name; - jmlAnnotation = jmlAnnotation.replace("\\old" + "(" + oldPart + ")", newVariableName + rest); - old = jmlAnnotation.indexOf("\\old", endOld + 5); - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - // find type of old variable - String typeOfVariable = ""; - for (JavaVariable var : variables.getVariables()) { - int indexName = var.getName().indexOf(" " + name); - if (indexName != -1) { - typeOfVariable = var.getName().substring(0, indexName); - break; - } - } - if (!typeOfVariable.isEmpty()) { - variable.setName(typeOfVariable + " " + newVariableName); - variables.getVariables().add(variable); - - boolean conditionAlreadyExists = false; - String newCondition = newVariableName + " = " + name; - for (Condition c : conditions.getConditions()) { - if (c.getName().equals(newCondition)) { - conditionAlreadyExists = true; - } - } - if (!conditionAlreadyExists) { - Condition cond = CbcmodelFactory.eINSTANCE.createCondition(); - cond.setName(newCondition); - conditions.getConditions().add(cond); - } - } - } - return jmlAnnotation; - } - - /** - * replaces special symbols(&& -> &, forall, ...) - * - * @param jmlAnnotation with required symbols - * @return - */ - private String replaceSpecialSymbols(String jmlAnnotation) { - jmlAnnotation = jmlAnnotation.replace("&&", "&"); - jmlAnnotation = jmlAnnotation.replace("==>", "->"); - jmlAnnotation = jmlAnnotation.replace("<==>", "<->"); - jmlAnnotation = jmlAnnotation.replace("||", "|"); - jmlAnnotation = jmlAnnotation.replace("==", "="); - jmlAnnotation = jmlAnnotation.replace("@", ""); - jmlAnnotation = jmlAnnotation.replace("\r\n\t", ""); - jmlAnnotation = jmlAnnotation.replace("= true", "= TRUE"); - jmlAnnotation = jmlAnnotation.replace("= false", "= FALSE"); - - // replace parts of JML with forall - // replace (\forall T x; a; b) by (\forall T x; ((a) -> (b)) and (\forall T x; - // a) by (\forall T x; (a)) - int startForAll = jmlAnnotation.indexOf("\\forall"); - while (startForAll != -1) { - int endForAll = findEndOfBracket(jmlAnnotation, startForAll); - int findFirstSemic = findNextSemic(jmlAnnotation, startForAll, endForAll); - int findSecondSemic = findNextSemic(jmlAnnotation, findFirstSemic + 1, endForAll); - String firstPart = jmlAnnotation.substring(0, findFirstSemic + 1); - if (findSecondSemic != -1) { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, findSecondSemic); - String thirdPart = jmlAnnotation.substring(findSecondSemic + 1, endForAll); - jmlAnnotation = firstPart + "((" + secondPart + ") -> (" + thirdPart + "))" - + jmlAnnotation.substring(endForAll); - } else { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, endForAll); - jmlAnnotation = firstPart + "(" + secondPart + ")" + jmlAnnotation.substring(endForAll); - } - startForAll = jmlAnnotation.indexOf("\\forall", startForAll + 7); - } - - // replace parts of JML with exists - // replace (\exists T x; a; b) by (\exists T x; (a) & (b)) and (\exists T x; a) - // by (\exists T x;(a)) - int startExists = jmlAnnotation.indexOf("\\exists"); - while (startExists != -1) { - int endExists = findEndOfBracket(jmlAnnotation, startExists); - int findFirstSemic = findNextSemic(jmlAnnotation, startExists, endExists); - int findSecondSemic = findNextSemic(jmlAnnotation, findFirstSemic + 1, endExists); - String firstPart = jmlAnnotation.substring(0, findFirstSemic + 1); - if (findSecondSemic != -1) { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, findSecondSemic); - String thirdPart = jmlAnnotation.substring(findSecondSemic + 1, endExists); - jmlAnnotation = firstPart + "((" + secondPart + ") & (" + thirdPart + "))" - + jmlAnnotation.substring(endExists); - } else { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, endExists); - jmlAnnotation = firstPart + "(" + secondPart + ")" + jmlAnnotation.substring(endExists); - } - startExists = jmlAnnotation.indexOf("\\exists", startExists + 7); - } - return jmlAnnotation; - } - - /** - * finds next semicolon, corresponding to part between start and end position, - * which is a forall or exists part - * - * @param jmlAnnotation part where to look for next semicolon - * @param startForAll start position - * @param endForAll end position - * @return - */ - private int findNextSemic(String jmlAnnotation, int start, int end) { - int index = jmlAnnotation.indexOf(";", start); - if (index != -1 && index < end) { - int leftBracket = jmlAnnotation.indexOf("(", start); - // left bracket, check if semicolon at index position - // belongs to another forall or exists part - if (leftBracket != -1 && leftBracket < index) { - int rightBracket = findEndOfBracket(jmlAnnotation, leftBracket + 1); - return findNextSemic(jmlAnnotation, rightBracket + 1, end); - } else { - return index; - } - } else { - return -1; - } - } - - /** - * finds the end position of the part belonging to 'requires' or 'ensures' - * - * @param jmlAnnotation - * @param startPosition index of requires or ensures - * @return - */ - private int findEnd(String jmlAnnotation, int startPosition) { - int possibleEnd = jmlAnnotation.indexOf(";", startPosition); - int bracketOpen = jmlAnnotation.indexOf("(", startPosition); - while (bracketOpen != -1 && possibleEnd > bracketOpen) { - int findBracketClose = findEndOfBracket(jmlAnnotation, bracketOpen + 1); - possibleEnd = jmlAnnotation.indexOf(";", findBracketClose); - bracketOpen = jmlAnnotation.indexOf("(", findBracketClose); - } - return possibleEnd; - } - - /** - * finds the position of the bracket ')' in jmlAnnotation which belongs to the - * bracket '(' right before starting position - * - * @param jmlAnnotation - * @param start new part in brackets starts here(not the exact position - * of "(", after "(") - * @return end of the part - */ - private int findEndOfBracket(String jmlAnnotation, int start) { - int nextBracketClose = jmlAnnotation.indexOf(")", start); - int nextBracketOpen = jmlAnnotation.indexOf("(", start); - while (nextBracketOpen != -1 && nextBracketOpen < nextBracketClose) { - // nextBracketClose does not belong to start bracket, find next possible bracket - // close - nextBracketOpen = jmlAnnotation.indexOf("(", nextBracketOpen + 1); - nextBracketClose = jmlAnnotation.indexOf(")", nextBracketClose + 1); - } - return nextBracketClose; - } - - // returns the file with name fileName as a String - public String readFileToString(String file) { - try { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - int i; - String s = ""; - while ((i = br.read()) != -1) { - s = s + (char) i; - } - br.close(); - s = s.replaceAll("\\bdefault\\b", " "); - return s; - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - // adds variable to the list of JavaVariables - public String getParameter(VariableImpl variable) { - String arrayTokens = ""; - if (variable.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < variable.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < variable.getArrayDimensionsBefore().get(k).getLayoutInformations().size(); j++) { - arrayTokens = arrayTokens + variable.getArrayDimensionsBefore().get(k).getLayoutInformations() - .get(j).getVisibleTokenText(); - } - } - } - String type; - if (variable.getTypeReference().getLayoutInformations().size() > 0) { - type = variable.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = variable.getTypeReference().getPureClassifierReference().getLayoutInformations().get(0) - .getVisibleTokenText(); - } - return type + arrayTokens + " " + variable.getName(); - } -} \ No newline at end of file diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java.orig b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java.orig deleted file mode 100644 index 6711c22f6..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateCodeForVariationalVerification.java.orig +++ /dev/null @@ -1,466 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.graphiti.features.IFeatureProvider; -import org.eclipse.graphiti.features.context.ICustomContext; -import org.eclipse.graphiti.mm.pictograms.Diagram; - -import de.tu_bs.cs.isf.cbc.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcclass.ModelClass; -import de.tu_bs.cs.isf.cbc.cbcclass.Parameter; -import de.tu_bs.cs.isf.cbc.cbcclass.Visibility; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariable; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; -import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; -import de.tu_bs.cs.isf.cbc.tool.features.MyAbstractAsynchronousCustomFeature; -import de.tu_bs.cs.isf.cbc.util.ClassUtil; -import de.tu_bs.cs.isf.cbc.util.Colors; -import de.tu_bs.cs.isf.cbc.util.Console; -import de.tu_bs.cs.isf.cbc.util.ConstructCodeBlock; -import de.tu_bs.cs.isf.cbc.util.DiagramPartsExtractor; -import de.tu_bs.cs.isf.cbc.util.FeatureUtil; -import de.tu_bs.cs.isf.cbc.util.FileUtil; -import de.tu_bs.cs.isf.cbc.util.GetDiagramUtil; -import de.tu_bs.cs.isf.cbc.util.IFileUtil; -import de.tu_bs.cs.isf.cbc.util.consts.MetaNames; - -public class GenerateCodeForVariationalVerification extends MyAbstractAsynchronousCustomFeature{ - private IFileUtil fileHandler; -<<<<<<< HEAD -======= - private String[] config; - public String predicatesPath = ""; ->>>>>>> 315837a5 (fixed problem at variable predicate verification when generating composed class and thus error in verification of sorted.push; introduced original pre and post) - - public GenerateCodeForVariationalVerification(IFeatureProvider fp) { - super(fp); - } - - @Override - protected void execute(ICustomContext context, IProgressMonitor monitor) { - - } - - public void generate(IPath location, String callingFeature, String callingClass, String callingMethod, String[] config) { - String output = " > Configuration: ["; - for (int j = 0; j < config.length; j++) { - if (j == config.length - 1) { - output += config[j]; - } else { - output += config[j] + ", "; - } - } - Console.println(output + "]", Colors.BLUE); - deleteExistingClasses(location + "/src_gen/"); - writeFile(location + "/src_gen/" + callingClass + ".java", "public class " + callingClass + " {\n}"); - generateClasses(location + "/src_gen/", config, callingFeature, callingClass, callingMethod.toLowerCase()); - resolveRemainingExplicitOriginalInCondition(location + "/src_gen/"); - } - - private void deleteExistingClasses(String classDirectory) { - File dir = new File(classDirectory); - String[] filesInDir = dir.list(); - if (filesInDir != null) { - for (String s : filesInDir) { - File currentFile = new File(dir.getPath(), s); - currentFile.delete(); - } - } - } - - private void removeMetaFiles(List classFiles) { - for (int i = 0; i < classFiles.size(); i++) { - if (classFiles.get(i).getLocation().toOSString().contains(MetaNames.FOLDER_NAME)) { - classFiles.remove(i); - i--; - } - } - } - - private void generateClasses(String classLocation, String[] config, String callingFeature, String callingClass, String callingMethod) { - URI uri = getDiagram().eResource().getURI(); - IProject project = FileUtil.getProjectFromFileInProject(uri); - List classFiles = ClassUtil.getFilesOfType(project, ".cbcclass"); - removeMetaFiles(classFiles); - List otherClasses = new ArrayList(); - for (IFile cbcclassFile : classFiles) { - if (cbcclassFile.getFullPath().toString().contains(".cbcclass")) { - String[] classNameParts = cbcclassFile.getFullPath().toString().split("/"); - String className = classNameParts[classNameParts.length - 1].replace(".cbcclass", ""); - for (String feature : config) { - if (cbcclassFile.getFullPath().toString().endsWith("/" + feature + "/" + className + "/" + className + ".cbcclass") && !otherClasses.contains(className)) { - otherClasses.add(className); - } - } - } - } - for (String className : otherClasses) { - String codeFields = ""; - String codeInvariants = ""; - String location = classLocation + className + ".java"; - String helperLocation = classLocation.replace("src_gen", "src") + className + "_helper.java"; - writeFile(location, "public class " + className + " {\n}"); - boolean alreadyInherited = false; - for (String feature : config) { - for (IFile cbcclassFile : classFiles) { - if (cbcclassFile.getFullPath().toString().contains(className + ".cbcclass") && cbcclassFile.getFullPath().toString().contains("/features/" + feature)) { - //String cbcclassPath = project.getLocationURI().toString().substring(6); - String cbcclassPath = project.getLocation().toOSString(); - Resource resource = ClassUtil.getClassModelResource(cbcclassPath, className, cbcclassFile.getFullPath().segment(2)); - for (EObject obj : resource.getContents()) { - if (obj instanceof ModelClass) { - ModelClass mc = (ModelClass) obj; - if (mc.getInheritsFrom() != null && !alreadyInherited) { - writeFile(location, "public class " + className + " extends " + mc.getInheritsFrom().getName() + " {\n}"); - alreadyInherited = true; - } - for (Condition c : mc.getClassInvariants()) { - String newInv = "/*@ invariant " + c.getName() + "; @*/"; - if (!codeInvariants.contains(newInv)) { - codeInvariants += " " + newInv + "\n"; - } - } - for (Field f : mc.getFields()) { - String newField = f.getVisibility().toString().toLowerCase() + (f.getVisibility().equals(Visibility.PRIVATE) ? " /*@spec_public@*/ " : "") + (f.isIsStatic() ? " static " : " ") + f.getType() + " " + f.getName() + ";"; - if (!codeFields.contains(newField)) { - codeFields += " " + newField + "\n"; - } } - } - } - } - } - } - - List methods = new ArrayList(); - boolean handledCallingMethod = false; - for (String feature : config) { - for (Diagram dia : getDiagrams()) { - URI diagramUri = dia.eResource().getURI(); - String diagramFeature = FeatureUtil.getInstance().getCallingFeature(diagramUri); - String diagramClass = FeatureUtil.getInstance().getCallingClass(diagramUri); - String diagramMethod = FeatureUtil.getInstance().getCallingMethod(diagramUri); - if (diagramFeature.equals(feature) - && diagramClass.equals(className) - && diagramMethod.matches("[a-z][a-zA-Z0-9]*")) { - if (!dia.getName().equalsIgnoreCase(callingMethod) || !handledCallingMethod) { - String pattern = ".* " + dia.getName() + "\\(.*\\) \\{.*"; - boolean addedToList = false; - String oldVersionOfMethod = ""; - String newVersionOfMethod = generateMethodForClass(dia, dia.getName()) + "\n"; - for (int i = methods.size() - 1; i >= 0; i--) { - String method = methods.get(i); - if (!addedToList && method.replace("\n", "").replace("\t", "").matches(pattern)) { - oldVersionOfMethod = method; - methods.remove(method); - if (newVersionOfMethod.contains("original(") || newVersionOfMethod.contains("original_" + dia.getName())) { - for (int j = 0; j < methods.size(); j++) { - String temp = methods.get(j).replace("original_" + dia.getName() + "(", "original_original_" + dia.getName() + "("); - methods.remove(j); - methods.add(j, temp); - } - oldVersionOfMethod = oldVersionOfMethod.replace("original_" + dia.getName() + "(", "original_original_" + dia.getName() + "("); - oldVersionOfMethod = oldVersionOfMethod.replace(" " + dia.getName() + "(", " original_" + dia.getName() + "("); - newVersionOfMethod = newVersionOfMethod.replace("original(", "original_" + dia.getName() + "("); - if (diagramFeature.equals(callingFeature) - && diagramClass.equals(callingClass) - && diagramMethod.equals(callingMethod + ".diagram")) { - handledCallingMethod = true; - } - } - addedToList = true; - } - } - if (!oldVersionOfMethod.equals("")) methods.add(oldVersionOfMethod); - methods.add(newVersionOfMethod); - } - } - } - } - String methodCode = ""; - for (String otherMethod : methods) { - methodCode += "\n" + otherMethod; - } - String helperCode = ""; - File javaFile = new File(helperLocation); - File dir = new File(helperLocation.substring(0, helperLocation.lastIndexOf("/"))); - if (!javaFile.exists()) { - dir.mkdir(); - } - String helperClassName = helperLocation.split("/")[helperLocation.split("/").length - 1].replace(".java", ""); - fileHandler = new FileUtil(uri.toPlatformString(true)); - File file = fileHandler.getClassFile(helperClassName); - if (file != null) { - helperCode = "\n// Code from " + helperLocation + "\n"; - List lines = fileHandler.readFileInList(file.getAbsolutePath()); - int i = 1; - while (!lines.get(i).contains("//begin")) { - i++; - } - for (int j = i + 1; j < lines.size()-1; j++) { - helperCode = helperCode + lines.get(j) + "\n"; - } - helperCode = helperCode + "// End of code from " + helperLocation + "\n"; - } - writeFile(location, codeFields + "\n" + codeInvariants + "\n" + methodCode + helperCode); - } - } - - private String generateMethodForClass(Diagram diagram, String methodName) { - diagram.eResource().getAllContents(); -<<<<<<< HEAD - DiagramPartsExtractor extractor = new DiagramPartsExtractor(diagram); - JavaVariables vars = extractor.getVars(); - GlobalConditions globalConditions = extractor.getConds(); - Renaming renaming = extractor.getRenaming(); - CbCFormula formula = extractor.getFormula(); -======= - JavaVariables vars = null; - Renaming renaming = null; - CbCFormula formula = null; - GlobalConditions globalConditions = null; - for (Shape shape : diagram.getChildren()) { - Object obj = getBusinessObjectForPictogramElement(shape); - if (obj instanceof JavaVariables) { - vars = (JavaVariables) obj; - } else if (obj instanceof Renaming) { - renaming = (Renaming) obj; - } else if (obj instanceof CbCFormula) { - formula = (CbCFormula) obj; - predicatesPath = formula.eResource().getURI().toString(); - } else if (obj instanceof GlobalConditions) { - globalConditions = (GlobalConditions) obj; - } - } ->>>>>>> 315837a5 (fixed problem at variable predicate verification when generating composed class and thus error in verification of sorted.push; introduced original pre and post) - - String signatureString = formula.getMethodObj().getSignature().replaceFirst(formula.getMethodObj().getName(), methodName); - JavaVariable returnVariable = null; - int counter = 0; - LinkedList localVariables = new LinkedList(); - for (int i = 0; i < vars.getVariables().size(); i++) { - JavaVariable currentVariable = vars.getVariables().get(i); - if (currentVariable.getKind() == VariableKind.RETURN || currentVariable.getKind() == VariableKind.RETURNPARAM) { - counter++; - if (!signatureString.substring(0, signatureString.indexOf('(')).contains(currentVariable.getName().replace("non-null", "").trim().split(" ")[0])) { - Console.println("Method return type and variable type does not match."); - return ""; - } - if (counter > 1) { - Console.println("Too much variables of kind RETURN."); - return ""; - } - returnVariable = currentVariable; - } else if (currentVariable.getKind() == VariableKind.LOCAL) { - localVariables.add(currentVariable.getName().replace("non-null", "")); - } - } - for (Parameter param : vars.getParams()) { - if (param.getName().equals("ret")) { - returnVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - returnVariable.setKind(VariableKind.RETURNPARAM); - returnVariable.setName(param.getType() + " " + param.getName()); - } - } - if (returnVariable != null) { - localVariables.add(returnVariable.getName().replace("non-null", "")); - } - globalConditions = null; - return ConstructCodeBlock.constructCodeBlockForExport(formula, globalConditions, renaming, localVariables, returnVariable, signatureString); - } - - private void resolveRemainingExplicitOriginalInCondition(String path) { - File dir = new File(path); - String[] filesInDir = dir.list(); - for (String file : filesInDir) { - File currentFile = new File(dir.getPath(), file); - List lines = fileHandler.readFileInList(currentFile.getAbsolutePath()); - String content = ""; - for (int i = 0; i < lines.size(); i++) { - String line = lines.get(i); - if (line.contains("@") && !line.contains("invariant")) { - List method = new ArrayList(); - method.add(line); - method.add(lines.get(++i)); -<<<<<<< HEAD - - int depth = 0; - if ((lines.get(++i).contains("original ") || lines.get(i).contains("original;")) && lines.get(i).contains("@ requires")) { - String temp = lines.get(i); - String[] splittedSignatureLine = lines.get(i + 4).split("\\(")[0].split(" "); - String methodName = splittedSignatureLine[splittedSignatureLine.length - 1]; - while (temp.contains("original ") || temp.contains("original;")) { -======= - - int depth = 0; - if ((lines.get(++i).contains("original ") || lines.get(i).contains("original;") || lines.get(i).contains("\\original_pre") || lines.get(i).contains("\\original_post")) && lines.get(i).contains("@ requires")) { - String temp = lines.get(i); - String[] splittedSignatureLine = lines.get(i + 4).split("\\(")[0].split(" "); - String methodName = splittedSignatureLine[splittedSignatureLine.length - 1]; - while (temp.contains("original ") || temp.contains("original;") || temp.contains("\\original_pre") || temp.contains("\\original_post")) { ->>>>>>> 315837a5 (fixed problem at variable predicate verification when generating composed class and thus error in verification of sorted.push; introduced original pre and post) - depth++; - for (int j = 0; j < lines.size(); j++) { - String originalMethod = methodName; - for (int k = 0; k < depth; k++) originalMethod = "original_" + originalMethod; - if (lines.get(j).contains(" " + originalMethod) && lines.get(j).contains("{")) { -<<<<<<< HEAD - String newCondition = lines.get(j - 4).replace("\t", "").replace("@ requires ", "").trim().replace("\n", ""); - temp = temp.replace("original", newCondition.substring(0, newCondition.length() - 1)); -======= - if (temp.contains("\\original_pre")) { - String newCondition = lines.get(j - 4).replace("\t", "").replace("@ requires ", "").trim().replace("\n", ""); - temp = temp.replace("\\original_pre", newCondition.substring(0, newCondition.length() - 1)); - } else if (temp.contains("\\original_post")){ - String newCondition = lines.get(j - 3).replace("\t", "").replace("@ ensures ", "").trim().replace("\n", ""); - temp = temp.replace("\\original_post", newCondition.substring(0, newCondition.length() - 1)); - } else { - String newCondition = lines.get(j - 4).replace("\t", "").replace("@ requires ", "").trim().replace("\n", ""); - temp = temp.replace("original", newCondition.substring(0, newCondition.length() - 1)); - } ->>>>>>> 315837a5 (fixed problem at variable predicate verification when generating composed class and thus error in verification of sorted.push; introduced original pre and post) - } - } - } - method.add(temp); - } else { - method.add(lines.get(i)); - } - depth = 0; -<<<<<<< HEAD - if ((lines.get(++i).contains("original ") || lines.get(i).contains("original;")) && lines.get(i).contains("@ ensures")) { - String temp = lines.get(i); - String[] splittedSignatureLine = lines.get(i + 3).split("\\(")[0].split(" "); - String methodName = splittedSignatureLine[splittedSignatureLine.length - 1]; - while (temp.contains("original ") || temp.contains("original;")) { -======= - if ((lines.get(++i).contains("original ") || lines.get(i).contains("original;") || lines.get(i).contains("\\original_pre") || lines.get(i).contains("\\original_post")) && lines.get(i).contains("@ ensures")) { - String temp = lines.get(i); - String[] splittedSignatureLine = lines.get(i + 3).split("\\(")[0].split(" "); - String methodName = splittedSignatureLine[splittedSignatureLine.length - 1]; - while (temp.contains("original ") || temp.contains("original;") || temp.contains("\\original_pre") || temp.contains("\\original_post")) { ->>>>>>> 315837a5 (fixed problem at variable predicate verification when generating composed class and thus error in verification of sorted.push; introduced original pre and post) - depth++; - for (int j = 0; j < lines.size(); j++) { - String originalMethod = methodName; - for (int k = 0; k < depth; k++) originalMethod = "original_" + originalMethod; - if (lines.get(j).contains(" " + originalMethod) && lines.get(j).contains("{")) { -<<<<<<< HEAD - String newCondition = lines.get(j - 3).replace("\t", "").replace("@ ensures ", "").trim().replace("\n", ""); - temp = temp.replace("original", newCondition.substring(0, newCondition.length() - 1)); -======= - if (temp.contains("\\original_pre")) { - String newCondition = lines.get(j - 4).replace("\t", "").replace("@ requires ", "").trim().replace("\n", ""); - temp = temp.replace("\\original_pre", newCondition.substring(0, newCondition.length() - 1)); - } else if (temp.contains("\\original_post")){ - String newCondition = lines.get(j - 3).replace("\t", "").replace("@ ensures ", "").trim().replace("\n", ""); - temp = temp.replace("\\original_post", newCondition.substring(0, newCondition.length() - 1)); - } else { - String newCondition = lines.get(j - 4).replace("\t", "").replace("@ requires ", "").trim().replace("\n", ""); - temp = temp.replace("original", newCondition.substring(0, newCondition.length() - 1)); - } ->>>>>>> 315837a5 (fixed problem at variable predicate verification when generating composed class and thus error in verification of sorted.push; introduced original pre and post) - } - } - } - method.add(temp); - } else { - method.add(lines.get(i)); - } - for (String methodLine : method) { - content = content + "\n" + methodLine; - } - content = content + "\n" + lines.get(++i) + "\n" + lines.get(++i); - } else { - content = content + "\n" + line; - } - } - writeFile(path + file, content.substring(1)); - } - } - - public void writeFile(String location, String code) { - File javaFile = new File(location); - File dir = new File(location.substring(0, location.lastIndexOf("/"))); - - try { - if (!javaFile.exists()) { - dir.mkdir(); - } - String content = code; - if (!code.contains("public class")) { - String className = location.split("/")[location.split("/").length - 1].replace(".java", ""); - URI uri = getDiagram().eResource().getURI(); - fileHandler = new FileUtil(uri.toPlatformString(true)); - File file = fileHandler.getClassFile(className); - if (file == null) { - file = fileHandler.getClassFile(className); - } - List lines = fileHandler.readFileInList(file.getAbsolutePath()); - content = lines.get(0); - int counter = 1; - while (lines.get(counter).contains(";")) { - content += "\n" + lines.get(counter++); - } - content += "\n\n" + code; - for (int i = 1; i < lines.size(); i++) { - String line = lines.get(i) + "\n"; - content += line; - } - } - FileWriter fw = new FileWriter(javaFile); - BufferedWriter bw = new BufferedWriter(fw); - bw.write(content); - bw.close(); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IPath iLocation = Path.fromOSString(javaFile.getAbsolutePath()); - IFile ifile = workspace.getRoot().getFileForLocation(iLocation); - ifile.refreshLocal(0, null); - } catch (IOException e) { - e.printStackTrace(); - } catch (CoreException e) { - e.printStackTrace(); - } - } - - private Collection getDiagrams() { - Collection result = Collections.emptyList(); - Resource resource = getDiagram().eResource(); - URI uri = resource.getURI(); - URI uriTrimmed = uri.trimFragment(); - if (uriTrimmed.isPlatformResource()) { - String platformString = uriTrimmed.toPlatformString(true); - IResource fileResource = ResourcesPlugin.getWorkspace().getRoot().findMember(platformString); - if (fileResource != null) { - IProject project = fileResource.getProject(); - result = GetDiagramUtil.getDiagrams(project); - } - } - return result; - } -} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateDiagramFromModel.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateDiagramFromModel.java deleted file mode 100644 index 2658f6267..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateDiagramFromModel.java +++ /dev/null @@ -1,224 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.IOException; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.graphiti.dt.IDiagramTypeProvider; -import org.eclipse.graphiti.features.IAddFeature; -import org.eclipse.graphiti.features.IFeatureProvider; -import org.eclipse.graphiti.features.context.impl.AddConnectionContext; -import org.eclipse.graphiti.features.context.impl.AddContext; -import org.eclipse.graphiti.features.context.impl.LayoutContext; -import org.eclipse.graphiti.features.context.impl.UpdateContext; -import org.eclipse.graphiti.mm.Property; -import org.eclipse.graphiti.mm.pictograms.ContainerShape; -import org.eclipse.graphiti.mm.pictograms.Diagram; -import org.eclipse.graphiti.mm.pictograms.PictogramElement; -import org.eclipse.graphiti.mm.pictograms.PictogramLink; -import org.eclipse.graphiti.mm.pictograms.Shape; -import org.eclipse.graphiti.services.Graphiti; -import org.eclipse.graphiti.ui.services.GraphitiUi; - -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.StrengthWeakStatement; - -public class GenerateDiagramFromModel { - - public GenerateDiagramFromModel() { - } - - public void execute(Resource resource) { - CbCFormula formula = null; - JavaVariables vars = null; - GlobalConditions conds = null; - Renaming renaming = null; - for (EObject content : resource.getContents()) { - if (content instanceof CbCFormula) { - formula = (CbCFormula) content; - } else if (content instanceof JavaVariables) { - vars = (JavaVariables) content; - } else if (content instanceof GlobalConditions) { - conds = (GlobalConditions) content; - } else if (content instanceof Renaming) { - renaming = (Renaming) content; - } - } - ResourceSet resourceSet = new ResourceSetImpl(); - URI uri = resource.getURI().trimFileExtension(); - uri = uri.appendFileExtension("diagram"); - // Create the diagram and its file - Diagram diagram = Graphiti.getPeCreateService().createDiagram("cbc", formula.getName(), true); - Resource diagramResource = resourceSet.createResource(uri); - diagramResource.getContents().add(diagram); - - - IDiagramTypeProvider dtp = GraphitiUi.getExtensionManager().createDiagramTypeProvider(diagram, - "de.tu-bs.cs.isf.cbc.tool.CbCDiagramTypeProvider"); - IFeatureProvider featureProvider = dtp.getFeatureProvider(); - - // Add all classes to diagram - addFormula(featureProvider, formula, diagram, 20, 20); - if (vars != null) - addElement(featureProvider, vars, diagram, 600, 20); - if (conds != null) - addElement(featureProvider, conds, diagram, 600, 220); - if (renaming != null) - addElement(featureProvider, renaming, diagram, 600, 420); - //if(javaClass != null) - //addElement(featureProvider, javaClass, diagram, 600, 20); - - try { - diagramResource.save(Collections.EMPTY_MAP); - diagramResource.setTrackingModification(true); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - URI fullUri = URI.createURI("file:/" + ResourcesPlugin.getWorkspace().getRoot().getLocation() + uri.toString().replace("platform:/resource", "")); - IPath iLocation = Path.fromOSString(fullUri.toFileString()); - //IPath iLocation = Path.fromOSString(uri.toFileString()); - IFile ifile = workspace.getRoot().getFileForLocation(iLocation); - ifile.getParent().refreshLocal(1, null); - } catch (IOException e) { - e.printStackTrace(); - } catch (CoreException e) { - e.printStackTrace(); - } - } - - private void addFormula(IFeatureProvider featureProvider, CbCFormula formula, Diagram diagram, int x, int y) { - AddContext addContext = new AddContext(); - addContext.setNewObject(formula); - addContext.setTargetContainer(diagram); - addContext.setX(x); - addContext.setY(y); - IAddFeature addFeature = featureProvider.getAddFeature(addContext); - if (addFeature.canAdd(addContext)) { - addFeature.add(addContext); - if (formula.getStatement().getRefinement() != null) { - Shape pe = (Shape) featureProvider.getPictogramElementForBusinessObject(formula.getStatement()); - addNextElement(featureProvider, formula.getStatement().getRefinement(), diagram, x, y + 200, pe); - } - } - - } - - private void addNextElement(IFeatureProvider featureProvider, AbstractStatement statement, Diagram diagram, int x, int y, Shape sourcePe) { - AddContext addContext = new AddContext(); - addContext.setNewObject(statement); - addContext.setTargetContainer(diagram); - addContext.setX(x); - addContext.setY(y); - - IAddFeature addFeature = featureProvider.getAddFeature(addContext); - if (addFeature.canAdd(addContext)) { - Shape pe = (Shape) addFeature.add(addContext); - AddConnectionContext addConContext = new AddConnectionContext(sourcePe.getAnchors().get(0), pe.getAnchors().get(0)); - addFeature = featureProvider.getAddFeature(addConContext); - if (addFeature.canAdd(addConContext)) { - addFeature.add(addConContext); - } - - if (statement instanceof SmallRepetitionStatement) { - SmallRepetitionStatement repetitionStatement = (SmallRepetitionStatement) statement; - if (repetitionStatement.getLoopStatement().getRefinement() != null) { - Shape repPe = (Shape) findPictogramElementForBusinessObject(diagram, repetitionStatement.getLoopStatement()); - addNextElement(featureProvider, repetitionStatement.getLoopStatement().getRefinement(), diagram, x, y + 350, repPe); - } - } else if (statement instanceof SelectionStatement) { - SelectionStatement selectionStatement = (SelectionStatement) statement; - x = x - 200; - y = y + 250; - for (AbstractStatement childStatement : selectionStatement.getCommands()) { - if (childStatement.getRefinement() != null) { - Shape selPe = (Shape) findPictogramElementForBusinessObject(diagram, childStatement); - addNextElement(featureProvider, childStatement.getRefinement(), diagram, x, y, selPe); - x = x + 400; - } - } - } else if (statement instanceof CompositionStatement) { - CompositionStatement compositionStatement = (CompositionStatement) statement; - - if (compositionStatement.getFirstStatement().getRefinement() != null) { - Shape st1Pe = (Shape)findPictogramElementForBusinessObject(diagram, compositionStatement.getFirstStatement()); - //Shape st1Pe = (Shape) featureProvider.getPictogramElementForBusinessObject(compositionStatement.getFirstStatement()); - addNextElement(featureProvider, compositionStatement.getFirstStatement().getRefinement(), diagram, x - 100, y + 350, st1Pe); - } - if (compositionStatement.getSecondStatement().getRefinement() != null) { - Shape st2Pe = (Shape) findPictogramElementForBusinessObject(diagram, compositionStatement.getSecondStatement()); - addNextElement(featureProvider, compositionStatement.getSecondStatement().getRefinement(), diagram, x + 300, y + 350, st2Pe); - } - } else if (statement instanceof StrengthWeakStatement) { - StrengthWeakStatement strengthWeakStatement = (StrengthWeakStatement) statement; - if (strengthWeakStatement.getRefinement() != null) { - Shape stPe = (Shape) findPictogramElementForBusinessObject(diagram, strengthWeakStatement); - ContainerShape container = (ContainerShape) stPe; - for (Shape childShape : container.getChildren()) { - for (Property property : childShape.getGraphicsAlgorithm().getProperties()) { - if (property.getValue().equals("statementText")) { - stPe = childShape; - } - } - } - addNextElement(featureProvider, strengthWeakStatement.getRefinement(), diagram, x, y + 150, stPe); - } - } - } - } - - /** - * (this method replaces the previously used - * 'featureProvider.getPictogramElementForBusinessObject(statement)' ) returns - * the pictogram element which represents the given statement - * - * @param diagram - * @param statement - * @return - */ - private PictogramElement findPictogramElementForBusinessObject(Diagram diagram, AbstractStatement statement) { - PictogramElement pe = null; - Collection pictogramLinks = diagram.getPictogramLinks(); - for (PictogramLink pictogramLink : pictogramLinks) { - List businessObjects = pictogramLink.getBusinessObjects(); - for (EObject obj : businessObjects) { - if (obj.toString().equals(statement.toString())) { - pe = pictogramLink.getPictogramElement(); - } - } - } - return pe; - } - - private void addElement(IFeatureProvider featureProvider, EObject object, Diagram diagram, int x, int y) { - AddContext addContext = new AddContext(); - addContext.setNewObject(object); - addContext.setTargetContainer(diagram); - addContext.setX(x); - addContext.setY(y); - IAddFeature addFeature = featureProvider.getAddFeature(addContext); - if (addFeature.canAdd(addContext)) { - PictogramElement pe = addFeature.add(addContext); - UpdateContext uContext = new UpdateContext(pe); - featureProvider.updateIfPossible(uContext); - LayoutContext lContext = new LayoutContext(pe); - featureProvider.layoutIfPossible(lContext); - } - } -} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java deleted file mode 100644 index 039129fa6..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java +++ /dev/null @@ -1,1292 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.StringJoiner; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.util.BasicEList; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; -import org.emftext.commons.layout.LayoutInformation; -import org.emftext.language.java.arrays.ArrayDimension; -import org.emftext.language.java.classifiers.impl.ClassImpl; -import org.emftext.language.java.containers.CompilationUnit; -import org.emftext.language.java.expressions.Expression; -import org.emftext.language.java.members.ClassMethod; -import org.emftext.language.java.members.Member; -import org.emftext.language.java.members.impl.FieldImpl; -import org.emftext.language.java.parameters.Parameter; -import org.emftext.language.java.resource.java.util.JavaResourceUtil; -import org.emftext.language.java.statements.Assert; -import org.emftext.language.java.statements.ForLoop; -import org.emftext.language.java.statements.LocalVariableStatement; -import org.emftext.language.java.statements.Statement; -import org.emftext.language.java.statements.WhileLoop; -import org.emftext.language.java.statements.impl.BlockImpl; -import org.emftext.language.java.statements.impl.ConditionImpl; -import org.emftext.language.java.statements.impl.DefaultSwitchCaseImpl; -import org.emftext.language.java.statements.impl.EmptyStatementImpl; -import org.emftext.language.java.statements.impl.ExpressionStatementImpl; -import org.emftext.language.java.statements.impl.NormalSwitchCaseImpl; -import org.emftext.language.java.statements.impl.ReturnImpl; -import org.emftext.language.java.statements.impl.SwitchImpl; -import org.emftext.language.java.types.TypeReference; -import org.emftext.language.java.types.impl.VoidImpl; -import org.emftext.language.java.variables.LocalVariable; -import org.emftext.language.java.variables.impl.VariableImpl; - -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.CbcclassFactory; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.CbcclassPackage; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Method; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.ModelClass; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Visibility; -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelPackage; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariable; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SkipStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; -import de.tu_bs.cs.isf.cbc.cbcmodel.Variant; - -public class GenerateModelFromCode { - // Content of Class - private ArrayList jmlLoopConditions = new ArrayList(); - private EList invariants = new BasicEList(); - private EList fields = new BasicEList(); - private EList methods = new BasicEList(); - - private int position = 0; - - // Stuff to change and create corc diagrams - private Resource cbcclassResource; - private List cbcmodelResources = new ArrayList(); - private ResourceSet rs = new ResourceSetImpl(); - private Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - private Map m = reg.getExtensionToFactoryMap(); - - // Info of java file - private String className; - private IFolder folder; - private String packageName; - - public GenerateModelFromCode() { - } - - public void execute(IFile iFile) { - - ArrayList jmlMethodConditions = new ArrayList(); - - String javaFileContent = readFileToString(iFile.getLocation().toPortableString()); - - readJMLAnnotations(javaFileContent, jmlMethodConditions); - - EObject abstractSyntaxTreeRoot = JavaResourceUtil.getResourceContent(javaFileContent); - CompilationUnit compilationUnit = (CompilationUnit) abstractSyntaxTreeRoot; - - if (compilationUnit.getClassifiers().isEmpty() - || compilationUnit.getClassifiers().get(0).getMembers().isEmpty()) { - return; - } - if (compilationUnit.getNamespacesAsString() != null && !compilationUnit.getNamespacesAsString().isEmpty()) { - packageName = compilationUnit.getNamespacesAsString().substring(0, compilationUnit.getNamespacesAsString().length()-1); - } - setupProjectStructure(iFile); - - ModelClass modelClass = instantiateModelClass(); - modelClass.setJavaClassURI(URI.createFileURI(iFile.getProjectRelativePath().toPortableString()).toFileString()); - modelClass.setPackage(packageName); - - if (compilationUnit.getClassifiers().get(0) instanceof ClassImpl) { - ClassImpl javaClass = (ClassImpl) compilationUnit.getClassifiers().get(0); - - for (Member member : javaClass.getMembers()) { - if (member instanceof FieldImpl) { - addFieldToList((FieldImpl) member); - } - - if (member instanceof ClassMethod) { - ClassMethod classMethod = (ClassMethod) member; - String methodName = classMethod.getName(); - - Method method = CbcclassFactory.eINSTANCE.createMethod(); - - Resource cbcmodelResource = setupProjectForCbCModel(method, methodName); - - JavaVariables variables = CbcmodelFactory.eINSTANCE.createJavaVariables(); - fillVariableList(variables, classMethod); - - //String signature = buildSignatureString(classMethod, variables); - settingSignature(classMethod, variables, method); - - // get global conditions from existing diagram - GlobalConditions conditions = CbcmodelFactory.eINSTANCE.createGlobalConditions(); - for (EObject obj : cbcmodelResource.getContents()) { - if (obj instanceof GlobalConditions) { - conditions = (GlobalConditions) obj; - } - } - - CbCFormula formula = createFormula(classMethod.getName()); - formula.setClassName(className); - formula.setMethodName(method.getName()); - method.setCbcStartTriple(formula); - formula.setMethodObj(method); - variables.eSet(CbcmodelPackage.eINSTANCE.getJavaVariables_Fields(), fields); - - //parse JML contract to pre- and postconditions of cbcFormula - String defaultAnnotation = " /*@\r\n" + " @ public normal_behavior\r\n" - + " @ requires true;\r\n" + " @ ensures true;\r\n" + " @ assignable \nothing;\r\n" - + " @*/"; - String jmlAnnotation = classMethod.getAnnotationsAndModifiers().get(0).getLayoutInformations() - .get(0).getHiddenTokenText(); - if (!jmlAnnotation.contains("/*@")) - jmlAnnotation = defaultAnnotation; - int index = 0; - - do { - String currentJmlPart = ""; - index = jmlAnnotation.indexOf("also"); - if (index != -1) { - currentJmlPart = jmlAnnotation.substring(0, index); - } else { - currentJmlPart = jmlAnnotation; - } - jmlAnnotation = jmlAnnotation.substring(index + 4); - - addConditionsToFormula(formula, currentJmlPart, variables, method, conditions); - - } while (index != -1); - - cbcmodelResource.getContents().clear(); - cbcmodelResource.getContents().add(formula); - cbcmodelResource.getContents().add(variables); - cbcmodelResource.getContents().add(conditions); - methods.add(method); - - EList listOfStatements = new BasicEList(); - for (int j = 0; j < classMethod.getStatements().size(); j++) { - listOfStatements.add(null); - } - Collections.copy(listOfStatements, classMethod.getStatements()); - handleListOfStatements(cbcmodelResource, listOfStatements, formula.getStatement()); - - cbcmodelResources.add(cbcmodelResource); - } - } - modelClass.eSet(CbcclassPackage.eINSTANCE.getModelClass_Methods(), methods); - modelClass.eSet(CbcclassPackage.eINSTANCE.getModelClass_Fields(), fields); - modelClass.eSet(CbcclassPackage.eINSTANCE.getModelClass_ClassInvariants(), invariants); - cbcclassResource.getContents().add(modelClass); - saveResource(cbcclassResource); - // TODO: generate class diagram from model - - for(Resource cbcmodelResource: cbcmodelResources) { - saveResource(cbcmodelResource); - GenerateDiagramFromModel gdfm = new GenerateDiagramFromModel(); - gdfm.execute(cbcmodelResource); - } - - - } - - } - - private ModelClass instantiateModelClass() { - ModelClass modelClass = null; - for (EObject obj : cbcclassResource.getContents()) { - if(obj instanceof ModelClass) { - modelClass = (ModelClass) obj; - modelClass.getMethods().clear(); - modelClass.getClassInvariants().clear(); - modelClass.getFields(); - } - } - - if(modelClass == null) { - modelClass = CbcclassFactory.eINSTANCE.createModelClass(); - modelClass.setName(className); - } - return modelClass; - } - - private Resource setupProjectForCbCModel(Method method, String methodName) { - Resource cbcmodelResource; - - URI cbcDiagramUri = URI.createFileURI(folder.getLocation() + "\\" + methodName + ".cbcmodel"); - - - if (!folder.getFile(methodName + ".cbcmodel").exists()) { - - m.put("cbcmodel", new XMIResourceFactoryImpl()); - cbcmodelResource = rs - .createResource(URI.createFileURI(folder.getLocation() + "\\" + methodName + ".cbcmodel")); - method.setCbcDiagramURI(cbcDiagramUri.toFileString()); - } else { - IFile cbcmodelFile = folder.getFile(methodName + ".cbcmodel"); - cbcmodelResource = GetDiagramUtil.getResourceFromFile(cbcmodelFile, rs); - } - return cbcmodelResource; - } - - private void fillVariableList(JavaVariables variables, ClassMethod classMethod) { - // add parameters to variables - for (Parameter p : classMethod.getParameters()) { - addToVariables((VariableImpl) p, variables, VariableKind.PARAM); - } - - TypeReference type = classMethod.getTypeReference(); - String typeString = JavaResourceUtil.getText(type); - if (!(type instanceof VoidImpl)) { - String arrayDimensions = ""; - if (classMethod.getArrayDimensionsBefore() != null) { - for (ArrayDimension ad : classMethod.getArrayDimensionsBefore()) { - for (LayoutInformation li : ad.getLayoutInformations()) { - arrayDimensions = arrayDimensions + li.getVisibleTokenText(); - } - } - } - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - typeString = JavaResourceUtil.getText(type) + arrayDimensions; - variable.setName(typeString + " result"); - variable.setKind(VariableKind.RETURN); - variables.getVariables().add(variable); - } - - } - - private void addFieldToList(FieldImpl fieldImpl) { - String arrayTokens = ""; - if (fieldImpl.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < fieldImpl.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < fieldImpl.getArrayDimensionsBefore().get(k).getLayoutInformations().size(); j++) { - arrayTokens = arrayTokens + fieldImpl.getArrayDimensionsBefore().get(k).getLayoutInformations() - .get(j).getVisibleTokenText(); - } - } - } - Field field = CbcclassFactory.eINSTANCE.createField(); - String type; - if (fieldImpl.getTypeReference().getLayoutInformations().size() > 0) { - type = fieldImpl.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = fieldImpl.getTypeReference().getPureClassifierReference().getLayoutInformations().get(0) - .getVisibleTokenText(); - } - field.setName(fieldImpl.getName()); - field.setType(type + arrayTokens); - if (fieldImpl.isPrivate()) { - field.setVisibility(Visibility.PRIVATE); - } else if (fieldImpl.isProtected()) { - field.setVisibility(Visibility.PROTECTED); - } - - if (fieldImpl.isStatic()) { - field.setIsStatic(true); - } - fields.add(field); - - } - - private void setupProjectStructure(IFile iFile) { - className = iFile.getName().split("\\.")[0]; - folder = iFile.getProject().getFolder(iFile.getParent().getProjectRelativePath().append("\\" + className)); - if (!folder.exists()) { - try { - folder.create(true, true, null); - } catch (CoreException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - if (!folder.getFile(className + ".cbcclass").exists()) { - - m.put("cbcclass", new XMIResourceFactoryImpl()); - cbcclassResource = rs - .createResource(URI.createFileURI(folder.getLocation() + "\\" + className + ".cbcclass")); - } else { - IFile cbcclassFile = folder.getFile(className + ".cbcclass"); - cbcclassResource = GetDiagramUtil.getResourceFromFile(cbcclassFile, rs); - } - - } - - private void saveResource(Resource r) { - try { - r.save(Collections.EMPTY_MAP); - r.setTrackingModification(true); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IPath iLocation = Path.fromOSString(r.getURI().toFileString()); - IFile ifile = workspace.getRoot().getFileForLocation(iLocation); - ifile.getParent().refreshLocal(1, null); - } catch (IOException | CoreException e) { - e.printStackTrace(); - } - } - - private String buildSignatureString(ClassMethod classMethod, JavaVariables variables) { - String signature = ""; - if (classMethod.isPublic()) { - signature += "public "; - } else if (classMethod.isPrivate()) { - signature += "private "; - } else if (classMethod.isProtected()) { - signature += "protected "; - } - if (classMethod.isStatic()) { - signature += "static "; - } - - StringJoiner sjParameters = new StringJoiner(", "); - String returnType = "void"; - - for (JavaVariable v : variables.getVariables()) { - if (v.getKind().equals(VariableKind.PARAM)) { - sjParameters.add(v.getName()); - } else if (v.getKind().equals(VariableKind.RETURN)) { - returnType = v.getName().substring(0, v.getName().indexOf(' ')); - } - } - - signature += returnType + " " + classMethod.getName() + "(" + sjParameters.toString() + ")"; - - return signature; - } - - private void settingSignature(ClassMethod classMethod, JavaVariables variables, Method method) { - if (classMethod.isPublic()) { - method.setVisibility(Visibility.PUBLIC); - } else if (classMethod.isPrivate()) { - method.setVisibility(Visibility.PRIVATE); - } else if (classMethod.isProtected()) { - method.setVisibility(Visibility.PROTECTED); - } - if (classMethod.isStatic()) { - method.setIsStatic(true); - } - - method.setReturnType("void"); - method.setName(classMethod.getName()); - - for (JavaVariable v : variables.getVariables()) { - if (v.getKind().equals(VariableKind.PARAM)) { - de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Parameter param = CbcclassFactory.eINSTANCE.createParameter(); - String[] nameSplitted = v.getName().split(" "); - param.setType(nameSplitted[nameSplitted.length-2]); - param.setName(nameSplitted[nameSplitted.length-1]); - method.getParameters().add(param); - } else if (v.getKind().equals(VariableKind.RETURN)) { - method.setReturnType(v.getName().substring(0, v.getName().indexOf(' '))); - } - } - } - - /** - * adds the pre and post condition from jmlAnnotation to formula - * - * @param formula - * @param jmlAnnotation contains pre and post condition for formula - * @param variables - * @param conditions - */ - private void addConditionsToFormula(CbCFormula formula, String jmlAnnotation, JavaVariables variables, - Method method, GlobalConditions conditions) { - jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - - jmlAnnotation = cbcWorkaroundForOldKeyword(jmlAnnotation, variables, conditions); - - // adds pre condition - int startPre = jmlAnnotation.indexOf("requires"); - String pre = ""; - - while (startPre != -1) { - int endPre = findEnd(jmlAnnotation, startPre); - pre = pre + " & " + jmlAnnotation.substring(startPre + 9, endPre); - startPre = jmlAnnotation.indexOf("requires", endPre); - } - // delete first & - pre = pre.substring(2); - Condition preCond = CbcmodelFactory.eINSTANCE.createCondition(); - preCond.setName(pre); - formula.getPreCondition().setName(pre); - formula.getStatement().getPreCondition().setName(pre); - - // adds post condition - int startPost = jmlAnnotation.indexOf("ensures"); - String post = ""; - while (startPost != -1) { - int endPost = findEnd(jmlAnnotation, startPost); - String currentPost = jmlAnnotation.substring(startPost + 8, endPost); - if (jmlAnnotation.contains("\\result")) { - currentPost = currentPost.replace("\\result", "result"); - } - post = post + " & " + currentPost; - startPost = jmlAnnotation.indexOf("ensures", endPost); - } - // delete first & - post = post.substring(2); - Condition postCond = CbcmodelFactory.eINSTANCE.createCondition(); - postCond.setName(post); - formula.getPostCondition().setName(post); - formula.getStatement().getPostCondition().setName(post); - } - - private String cbcWorkaroundForOldKeyword(String jmlAnnotation, JavaVariables variables, - GlobalConditions conditions) { - int old = jmlAnnotation.indexOf("\\old"); - while (old != -1) { - int endOld = findEndOfBracket(jmlAnnotation, old + 5); - String oldPart = jmlAnnotation.substring(old + 5, endOld); - String name = ""; - String rest = ""; - int index = oldPart.indexOf("."); - if (index != -1) { - name = oldPart.substring(0, index); - rest = oldPart.substring(index); - } else { - name = oldPart; - } - String newVariableName = "old_" + name; - jmlAnnotation = jmlAnnotation.replace("\\old" + "(" + oldPart + ")", newVariableName + rest); - old = jmlAnnotation.indexOf("\\old", endOld + 5); - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - // find type of old variable - String typeOfVariable = ""; - for (JavaVariable var : variables.getVariables()) { - int indexName = var.getName().indexOf(" " + name); - if (indexName != -1) { - typeOfVariable = var.getName().substring(0, indexName); - break; - } - } - for(Field f: variables.getFields()) { - if(f.getName().equals(name)) { - typeOfVariable = f.getType(); - } - } - variable.setName(typeOfVariable + " " + newVariableName); - variables.getVariables().add(variable); - - boolean conditionAlreadyExists = false; - String newCondition = newVariableName + " = " + name; - for (Condition c : conditions.getConditions()) { - if (c.getName().equals(newCondition)) { - conditionAlreadyExists = true; - } - } - if (!conditionAlreadyExists) { - Condition cond = CbcmodelFactory.eINSTANCE.createCondition(); - cond.setName(newCondition); - - conditions.getConditions().add(cond); - } - } - return jmlAnnotation; - - } - - /** - * replaces special symbols(&& -> &, forall, ...) - * - * @param jmlAnnotation with required symbols - * @return - */ - private String replaceSpecialSymbols(String jmlAnnotation) { - jmlAnnotation = jmlAnnotation.replace("&&", "&"); - jmlAnnotation = jmlAnnotation.replace("==>", "->"); - jmlAnnotation = jmlAnnotation.replace("<==>", "<->"); - jmlAnnotation = jmlAnnotation.replace("||", "|"); - jmlAnnotation = jmlAnnotation.replace("==", "="); - jmlAnnotation = jmlAnnotation.replace("@", ""); - jmlAnnotation = jmlAnnotation.replace("\r\n\t", ""); - - // replace parts of JML with forall - // replace (\forall T x; a; b) by (\forall T x; ((a) -> (b)) and (\forall T x; - // a) by (\forall T x; (a)) - int startForAll = jmlAnnotation.indexOf("\\forall"); - while (startForAll != -1) { - int endForAll = findEndOfBracket(jmlAnnotation, startForAll); - int findFirstSemic = findNextSemic(jmlAnnotation, startForAll, endForAll); - int findSecondSemic = findNextSemic(jmlAnnotation, findFirstSemic + 1, endForAll); - String firstPart = jmlAnnotation.substring(0, findFirstSemic + 1); - if (findSecondSemic != -1) { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, findSecondSemic); - String thirdPart = jmlAnnotation.substring(findSecondSemic + 1, endForAll); - jmlAnnotation = firstPart + "(" + secondPart + ") -> (" + thirdPart + ")" - + jmlAnnotation.substring(endForAll); - } else { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, endForAll); - jmlAnnotation = firstPart + "(" + secondPart + ")" + jmlAnnotation.substring(endForAll); - } - startForAll = jmlAnnotation.indexOf("\\forall", startForAll + 7); - } - - // replace parts of JML with exists - // replace (\exists T x; a; b) by (\exists T x; (a) & (b)) and (\exists T x; a) - // by (\exists T x;(a)) - int startExists = jmlAnnotation.indexOf("\\exists"); - while (startExists != -1) { - int endExists = findEndOfBracket(jmlAnnotation, startExists); - int findFirstSemic = findNextSemic(jmlAnnotation, startExists, endExists); - int findSecondSemic = findNextSemic(jmlAnnotation, findFirstSemic + 1, endExists); - String firstPart = jmlAnnotation.substring(0, findFirstSemic + 1); - if (findSecondSemic != -1) { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, findSecondSemic); - String thirdPart = jmlAnnotation.substring(findSecondSemic + 1, endExists); - jmlAnnotation = firstPart + "(" + secondPart + ") & (" + thirdPart + ")" - + jmlAnnotation.substring(endExists); - } else { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, endExists); - jmlAnnotation = firstPart + "(" + secondPart + ")" + jmlAnnotation.substring(endExists); - } - startExists = jmlAnnotation.indexOf("\\exists", startExists + 7); - } - return jmlAnnotation; - } - - /** - * finds next semicolon, corresponding to part between start and end position, - * which is a forall or exists part - * - * @param jmlAnnotation part where to look for next semicolon - * @param startForAll start position - * @param endForAll end position - * @return - */ - private int findNextSemic(String jmlAnnotation, int start, int end) { - int index = jmlAnnotation.indexOf(";", start); - if (index != -1 && index < end) { - int leftBracket = jmlAnnotation.indexOf("(", start); - // left bracket, check if semicolon at index position - // belongs to another forall or exists part - if (leftBracket != -1 && leftBracket < index) { - int rightBracket = findEndOfBracket(jmlAnnotation, leftBracket + 1); - return findNextSemic(jmlAnnotation, rightBracket + 1, end); - } else { - return index; - } - } else { - return -1; - } - } - - /** - * finds the end position of the part belonging to 'requires' or 'ensures' - * - * @param jmlAnnotation - * @param startPosition index of requires or ensures - * @return - */ - private int findEnd(String jmlAnnotation, int startPosition) { - int possibleEnd = jmlAnnotation.indexOf(";", startPosition); - int bracketOpen = jmlAnnotation.indexOf("(", startPosition); - while (bracketOpen != -1 && possibleEnd > bracketOpen) { - int findBracketClose = findEndOfBracket(jmlAnnotation, bracketOpen + 1); - possibleEnd = jmlAnnotation.indexOf(";", findBracketClose); - bracketOpen = jmlAnnotation.indexOf("(", findBracketClose); - } - return possibleEnd; - } - - /** - * finds the position of the bracket ')' in jmlAnnotation which belongs to the - * bracket '(' right before starting position - * - * @param jmlAnnotation - * @param start new part in brackets starts here(not the exact position - * of "(", after "(") - * @return end of the part - */ - private int findEndOfBracket(String jmlAnnotation, int start) { - int nextBracketClose = jmlAnnotation.indexOf(")", start); - int nextBracketOpen = jmlAnnotation.indexOf("(", start); - while (nextBracketOpen != -1 && nextBracketOpen < nextBracketClose) { - // nextBracketClose does not belong to start bracket, find next possible bracket - // close - nextBracketOpen = jmlAnnotation.indexOf("(", nextBracketOpen + 1); - nextBracketClose = jmlAnnotation.indexOf(")", nextBracketClose + 1); - } - return nextBracketClose; - } - - /** - * adds loop variant and invariant from jmlAnnotation to - * - * @param r - * - * @param repStatement - * @param jmlAnnotation contains loop variant and invariant - */ - private void addLoopConditions(Resource r, SmallRepetitionStatement repStatement, String jmlAnnotation) { - // adds invariant - int startInvariant = jmlAnnotation.indexOf("loop_invariant"); - int endInvariant = findEnd(jmlAnnotation, startInvariant); - String invariant = jmlAnnotation.substring(startInvariant + 15, endInvariant); - int old = invariant.indexOf("\\old"); - String newVariableName = ""; - ArrayList additionalPre = new ArrayList(); - // new variable old_name - while (old != -1) { - int endOld = findEndOfBracket(invariant, old + 5); - String oldPart = invariant.substring(old + 5, endOld); - String name = ""; - String rest = ""; - int index = oldPart.indexOf("."); - if (index != -1) { - name = oldPart.substring(0, index); - rest = oldPart.substring(index); - } else { - name = oldPart; - } - newVariableName = "old_" + name; - invariant = invariant.replace("\\old" + "(" + oldPart + ")", newVariableName + rest); - additionalPre.add(newVariableName + " = " + name); - old = invariant.indexOf("\\old", endOld + 5); - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - variable.setName(newVariableName); - JavaVariables variableList = (JavaVariables) r.getContents().get(1); - variableList.getVariables().add(variable); - } - CbCFormula formula = (CbCFormula) r.getContents().get(0); - for (String addPre : additionalPre) { - formula.getStatement().getPreCondition() - .setName(formula.getStatement().getPreCondition().getName() + " & " + addPre); - } - UpdateConditionsOfChildren.updateRefinedStatement(formula.getStatement(), - formula.getStatement().getRefinement()); - - repStatement.getInvariant().setName(invariant); - - // adds variant - int startVariant = jmlAnnotation.indexOf("decreases"); - int endVariant = jmlAnnotation.indexOf(";", startVariant); - repStatement.getVariant().setName(jmlAnnotation.substring(startVariant + 10, endVariant)); - } - - /** - * Finds the JML annotations in the file and adds the JML blocks before methods - * to the list jmlMethodConditions and adds the JML blocks before a loop to the - * list jmlLoopConditions. - * - * @param file java code with JML annotations - * @param jmlMethodConditions list for pre/post conditions for methods - * @param jmlLoopConditions list for conditions for loops - */ - private void readJMLAnnotations(String file, ArrayList jmlMethodConditions) { - - Map mapJmlMethodConditions = new HashMap(); - int startJML1 = file.indexOf("/*@"); - int startJML2 = file.indexOf("//@"); - int startJML, endJML; - while (startJML1 != -1 || startJML2 != -1) { - if (startJML2 == -1 || (startJML1 != -1 && startJML1 < startJML2)) { - startJML = startJML1; - endJML = file.indexOf("*/", startJML); - } else { - startJML = startJML2; - endJML = file.indexOf("\n", startJML); - int nextComment = file.indexOf("//@", endJML); - while (nextComment == endJML + 2) { - endJML = file.indexOf("\n", nextComment); - nextComment = file.indexOf("//@", endJML); - } - } - String jmlAnnotation = file.substring(startJML, endJML); - if (jmlAnnotation.contains("loop_invariant")) { - jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - jmlLoopConditions.add(jmlAnnotation); - } else if (jmlAnnotation.contains("normal_behavior")) { - String methodName = parseNextMethodName(file.substring(endJML)); - mapJmlMethodConditions.put(methodName, jmlAnnotation); - } else if (jmlAnnotation.contains("invariant")) { - addInvariantToList(jmlAnnotation); - } - file = file.substring(endJML); - startJML1 = file.indexOf("/*@"); - startJML2 = file.indexOf("//@"); - } - } - - private void addInvariantToList(String jmlAnnotation) { - jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - int beginInv = jmlAnnotation.indexOf("invariant"); - int endInv; - String newInv; - if (jmlAnnotation.startsWith("//")) { - while (beginInv != -1) { - endInv = jmlAnnotation.indexOf("//", beginInv) - 1; - if (endInv == -2) { - endInv = jmlAnnotation.length() - 2; - } - newInv = jmlAnnotation.substring(beginInv + 10, endInv); - Condition inv = CbcmodelFactory.eINSTANCE.createCondition(); - inv.setName(newInv); - invariants.add(inv); - beginInv = jmlAnnotation.indexOf("invariant", endInv); - } - } else { - // line comment, Ende festlegen, im Moment ;*/ Ende - while (beginInv != -1) { - endInv = findEnd(jmlAnnotation, beginInv); - newInv = jmlAnnotation.substring(beginInv + 10, endInv); - Condition inv = CbcmodelFactory.eINSTANCE.createCondition(); - inv.setName(newInv); - invariants.add(inv); - beginInv = jmlAnnotation.indexOf("invariant", endInv); - } - } - - } - - private String parseNextMethodName(String file) { - - return null; - } - - /** - * Determines name for diagram and model. If there are methods with the same - * name, number consecutively. - * - * @param names list of already used names - * @param potName name of method - * @return unique name - */ - private String findName(List names, String potentialName) { - int i = 2; - String retName = potentialName; - for (String name : names) { - if (name.equals(retName)) { - retName = potentialName + i; - i++; - } - } - names.add(retName); - return retName; - } - - // returns the file with name fileName as a String - public String readFileToString(String file) { - try { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - int i; - String s = ""; - while ((i = br.read()) != -1) { - s = s + (char) i; - } - br.close(); - return s; - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * Handles a list of statements: if there are more than one statement, creates - * CompositionStatement and handles rest of the list - * - * @param r - * @param statements list of statements from java code - * @param parent the statements from the list should be connected to that - * statement - */ - public void handleListOfStatements(Resource r, EList statements, AbstractStatement parent) { - if (statements.size() > 1) { - CompositionStatement composition = createComposition(); - parent.setRefinement(composition); - - handleStatement(r, statements.get(0), composition.getFirstStatement()); - int i = 1; - if(statements.get(1) instanceof Assert) { // assert statements contain intermediate conditions - Assert assertSt = (Assert) statements.get(1); - Condition intermediate = CbcmodelFactory.eINSTANCE.createCondition(); - intermediate.setName(JavaResourceUtil.getText(assertSt.getCondition())); - composition.setIntermediateCondition(intermediate); - i = 2; - } - UpdateConditionsOfChildren.updateRefinedStatement(parent, composition); - BasicEList newStatementList = new BasicEList(); - while (i < statements.size()) { - newStatementList.add(statements.get(i)); - i++; - } - handleListOfStatements(r, newStatementList, composition.getSecondStatement()); - } else if (statements.size() == 1) { - handleStatement(r, statements.get(0), parent); - - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - } - - /** - * Adds statement to resource r, statement is connected to parent and handled, - * depending on the type of statement - * - * @param r - * @param statement - * @param parent - */ - private void handleStatement(Resource r, Statement statement, AbstractStatement parent) { - if (statement instanceof LocalVariableStatement) { - LocalVariableStatement variableStatement = (LocalVariableStatement) statement; - LocalVariable variable = variableStatement.getVariable(); - String text = JavaResourceUtil.getText(variable); - if (text.contains("=")) { - String firstPart = text.substring(0, text.indexOf("=")); - int index = firstPart.lastIndexOf(variable.getName()); - text = text.substring(index); - AbstractStatement s = createStatement(text + ";"); - parent.setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(parent, s); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - addToVariables((VariableImpl) variable, (JavaVariables) r.getContents().get(1), VariableKind.LOCAL); - } else if (statement instanceof WhileLoop) { - WhileLoop loop = (WhileLoop) statement; - Expression condition = loop.getCondition(); - String conditionString = JavaResourceUtil.getText(condition); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SmallRepetitionStatement repStatement = createRepetition(conditionString); - addLoopConditions(r, repStatement, jmlLoopConditions.get(position)); - position++; - parent.setRefinement(repStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, repStatement); - if (loop.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) loop.getStatement(); - handleListOfStatements(r, block.getStatements(), repStatement.getLoopStatement()); - } - } else if (statement instanceof ConditionImpl) { - ConditionImpl conditionImpl = (ConditionImpl) statement; - Expression condition1 = conditionImpl.getCondition(); - // also nicht mehrere else ifs - if (!(conditionImpl.getElseStatement() instanceof ConditionImpl)) { - String conditionString = JavaResourceUtil.getText(condition1); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SelectionStatement selStatement = createSimpleSelection(conditionString, - ("!" + "(" + conditionString + ")")); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - if (conditionImpl.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(0)); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - if (conditionImpl.getElseStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getElseStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(1)); - } else { - SkipStatement skipStatement = createSkipStatement(); - selStatement.getCommands().get(1).setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(selStatement.getCommands().get(1), skipStatement); - } - } else { - SelectionStatement selStatement = createMultiSelection(JavaResourceUtil.getText(condition1)); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - if (conditionImpl.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(0)); - } - int i = 1; - while (conditionImpl.getElseStatement() instanceof ConditionImpl) { - ConditionImpl nextCondition = (ConditionImpl) conditionImpl.getElseStatement(); - Expression condition = nextCondition.getCondition(); - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(JavaResourceUtil.getText(condition)); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - if (nextCondition.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) nextCondition.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(i)); - } - i++; - conditionImpl = nextCondition; - } - - if (conditionImpl.getElseStatement() instanceof BlockImpl) { - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - String condition = ""; - for (Condition guard : selStatement.getGuards()) { - condition = condition + "!(" + guard.getName() + ") & "; - } - condition = condition.substring(0, condition.length() - 3); - conditionNext.setName(condition); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - BlockImpl block = (BlockImpl) conditionImpl.getElseStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(i)); - } - } - - } else if (statement instanceof ReturnImpl) { - ReturnImpl returnImpl = (ReturnImpl) statement; - ReturnStatement retStatement = createReturnStatement( - "result = " + JavaResourceUtil.getText(returnImpl.getReturnValue()) + ";"); - parent.setRefinement(retStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, retStatement); - } else if (statement instanceof ExpressionStatementImpl) { - ExpressionStatementImpl exprStatement = (ExpressionStatementImpl) statement; - AbstractStatement s = createStatement(JavaResourceUtil.getText(exprStatement.getExpression()) + ";"); - parent.setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(parent, s); - } else if (statement instanceof ForLoop) { - ForLoop loop = (ForLoop) statement; - - CompositionStatement composition = createComposition(); - parent.setRefinement(composition); - UpdateConditionsOfChildren.updateRefinedStatement(parent, composition); - - // Initialization as first part of composition - String init = JavaResourceUtil.getText(loop.getInit()); - AbstractStatement s = createStatement(init + ";"); - composition.getFirstStatement().setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(composition.getFirstStatement(), s); - - // new Composition for actual repetition block and loop variable update - CompositionStatement composition2 = createComposition(); - composition.getSecondStatement().setRefinement(composition2); - UpdateConditionsOfChildren.updateRefinedStatement(composition.getSecondStatement(), composition2); - String conditionString = JavaResourceUtil.getText(loop.getCondition()); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SmallRepetitionStatement repStatement = createRepetition(conditionString); - addLoopConditions(r, repStatement, jmlLoopConditions.get(position)); - position++; - composition2.getFirstStatement().setRefinement(repStatement); - UpdateConditionsOfChildren.updateRefinedStatement(composition2.getFirstStatement(), repStatement); - - // loop variable update, prüfen, ob ich mehrere updates haben kann - String update = JavaResourceUtil.getText(loop.getUpdates().get(0)); - AbstractStatement updateStatement = createStatement(update + ";"); - composition2.getSecondStatement().setRefinement(updateStatement); - UpdateConditionsOfChildren.updateRefinedStatement(composition2.getSecondStatement(), updateStatement); - - if (loop.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) loop.getStatement(); - handleListOfStatements(r, block.getStatements(), repStatement.getLoopStatement()); - } - } else if (statement instanceof SwitchImpl) { - SwitchImpl switchCase = (SwitchImpl) statement; - String switchVariable = JavaResourceUtil.getText(switchCase.getVariable()); - Expression firstCondition = null; - NormalSwitchCaseImpl sc = null; - - if (switchCase.getCases().get(0) instanceof NormalSwitchCaseImpl) { - sc = (NormalSwitchCaseImpl) switchCase.getCases().get(0); - firstCondition = sc.getCondition(); - } - - SelectionStatement selStatement = createMultiSelection( - switchVariable + " = " + JavaResourceUtil.getText(firstCondition)); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - handleListOfStatements(r, sc.getStatements(), selStatement.getCommands().get(0)); - - for (int i = 1; i < switchCase.getCases().size(); i++) { - if (switchCase.getCases().get(i) instanceof NormalSwitchCaseImpl) { - NormalSwitchCaseImpl normalCase = (NormalSwitchCaseImpl) switchCase.getCases().get(i); - Expression condition = normalCase.getCondition(); - - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(switchVariable + " = " + JavaResourceUtil.getText(condition)); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - handleListOfStatements(r, normalCase.getStatements(), nextStatement); - - } else if (switchCase.getCases().get(i) instanceof DefaultSwitchCaseImpl) { - DefaultSwitchCaseImpl defaultCase = (DefaultSwitchCaseImpl) switchCase.getCases().get(i); - String defaultCondition = ""; - for (Condition guard : selStatement.getGuards()) { - defaultCondition = defaultCondition + "!(" + guard.getName() + ") & "; - } - defaultCondition = defaultCondition.substring(0, defaultCondition.length() - 3); - - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(defaultCondition); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - handleListOfStatements(r, defaultCase.getStatements(), nextStatement); - } - } - } else if (statement instanceof EmptyStatementImpl) { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - - } - - // adds variable to the list of JavaVariables - public void addToVariables(VariableImpl variable, JavaVariables variableList, VariableKind kind) { - String arrayTokens = ""; - if (variable.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < variable.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < variable.getArrayDimensionsBefore().get(k).getLayoutInformations().size(); j++) { - arrayTokens = arrayTokens + variable.getArrayDimensionsBefore().get(k).getLayoutInformations() - .get(j).getVisibleTokenText(); - } - } - } - JavaVariable javaVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - String type; - if (variable.getTypeReference().getLayoutInformations().size() > 0) { - type = variable.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = variable.getTypeReference().getPureClassifierReference().getLayoutInformations().get(0) - .getVisibleTokenText(); - } - javaVariable.setName(type + arrayTokens + " " + variable.getName()); - javaVariable.setKind(kind); - variableList.getVariables().add(javaVariable); - } - - public CbCFormula createFormula(String name) { - CbCFormula formula = CbcmodelFactory.eINSTANCE.createCbCFormula(); - formula.setName(name); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement"); - formula.setStatement(statement); - Condition preCondition = CbcmodelFactory.eINSTANCE.createCondition(); - preCondition.setName("pre"); - statement.setPreCondition(preCondition); - Condition preCondition2 = CbcmodelFactory.eINSTANCE.createCondition(); - preCondition2.setName("pre"); - formula.setPreCondition(preCondition2); - Condition postCondition = CbcmodelFactory.eINSTANCE.createCondition(); - postCondition.setName("post"); - statement.setPostCondition(postCondition); - Condition postCondition2 = CbcmodelFactory.eINSTANCE.createCondition(); - postCondition2.setName("post"); - formula.setPostCondition(postCondition2); - return formula; - } - - public CompositionStatement createComposition() { - CompositionStatement compoStatement = CbcmodelFactory.eINSTANCE.createCompositionStatement(); - compoStatement.setName("compositionStatement"); - AbstractStatement statement1 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement1.setName("statement1"); - compoStatement.setFirstStatement(statement1); - Condition pre1 = CbcmodelFactory.eINSTANCE.createCondition(); - pre1.setName(""); - statement1.setPreCondition(pre1); - Condition post1 = CbcmodelFactory.eINSTANCE.createCondition(); - post1.setName(""); - statement1.setPostCondition(post1); - - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName("intermediateCond"); - compoStatement.setIntermediateCondition(condition); - AbstractStatement statement2 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement2.setName("statement2"); - compoStatement.setSecondStatement(statement2); - Condition pre2 = CbcmodelFactory.eINSTANCE.createCondition(); - pre2.setName(""); - statement2.setPreCondition(pre2); - Condition post2 = CbcmodelFactory.eINSTANCE.createCondition(); - post2.setName(""); - statement2.setPostCondition(post2); - return compoStatement; - } - - public SmallRepetitionStatement createRepetition(String guard) { - SmallRepetitionStatement repetitionStatement = CbcmodelFactory.eINSTANCE.createSmallRepetitionStatement(); - repetitionStatement.setName("repetitionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("loop"); - repetitionStatement.setLoopStatement(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard); - repetitionStatement.setGuard(condition); - Condition invariant = CbcmodelFactory.eINSTANCE.createCondition(); - invariant.setName("invariant"); - repetitionStatement.setInvariant(invariant); - Variant variant = CbcmodelFactory.eINSTANCE.createVariant(); - variant.setName("variant"); - repetitionStatement.setVariant(variant); - - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - Condition preRep = CbcmodelFactory.eINSTANCE.createCondition(); - preRep.setName(""); - repetitionStatement.setPreCondition(preRep); - Condition postRep = CbcmodelFactory.eINSTANCE.createCondition(); - postRep.setName(""); - repetitionStatement.setPostCondition(postRep); - return repetitionStatement; - } - - public SelectionStatement createSimpleSelection(String guard1, String guard2) { - SelectionStatement selectionStatement = CbcmodelFactory.eINSTANCE.createSelectionStatement(); - selectionStatement.setName("selectionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement1"); - selectionStatement.getCommands().add(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard1); - selectionStatement.getGuards().add(condition); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - AbstractStatement statement2 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement2.setName("statement2"); - selectionStatement.getCommands().add(statement2); - Condition condition2 = CbcmodelFactory.eINSTANCE.createCondition(); - condition2.setName(guard2); - selectionStatement.getGuards().add(condition2); - Condition pre2 = CbcmodelFactory.eINSTANCE.createCondition(); - pre2.setName(""); - statement2.setPreCondition(pre2); - Condition post2 = CbcmodelFactory.eINSTANCE.createCondition(); - post2.setName(""); - statement2.setPostCondition(post2); - return selectionStatement; - } - - // for several else ifs - public SelectionStatement createMultiSelection(String guard1) { - SelectionStatement selectionStatement = CbcmodelFactory.eINSTANCE.createSelectionStatement(); - selectionStatement.setName("selectionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement1"); - selectionStatement.getCommands().add(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard1); - selectionStatement.getGuards().add(condition); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - return selectionStatement; - } - - public AbstractStatement createStatement(String name) { - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName(name); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - return statement; - } - - public ReturnStatement createReturnStatement(String name) { - ReturnStatement returnStatement = CbcmodelFactory.eINSTANCE.createReturnStatement(); - returnStatement.setName(name); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - returnStatement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - returnStatement.setPostCondition(post); - return returnStatement; - } - - public SkipStatement createSkipStatement() { - SkipStatement statement = CbcmodelFactory.eINSTANCE.createSkipStatement(); - statement.setName(";"); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName("{}"); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName("{}"); - statement.setPostCondition(post); - return statement; - } - -} \ No newline at end of file diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java.orig b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java.orig deleted file mode 100644 index 2a5f0aec5..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelFromCode.java.orig +++ /dev/null @@ -1,1378 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.StringJoiner; - -import org.eclipse.core.commands.ExecutionException; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IFolder; -import org.eclipse.core.resources.IWorkspace; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.common.util.BasicEList; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; -import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.PlatformUI; -import org.emftext.commons.layout.LayoutInformation; -import org.emftext.language.java.arrays.ArrayDimension; -import org.emftext.language.java.classifiers.impl.ClassImpl; -import org.emftext.language.java.containers.CompilationUnit; -import org.emftext.language.java.expressions.Expression; -import org.emftext.language.java.members.ClassMethod; -import org.emftext.language.java.members.Member; -import org.emftext.language.java.members.impl.FieldImpl; -import org.emftext.language.java.parameters.Parameter; -import org.emftext.language.java.resource.java.util.JavaResourceUtil; -import org.emftext.language.java.statements.Assert; -import org.emftext.language.java.statements.ForLoop; -import org.emftext.language.java.statements.LocalVariableStatement; -import org.emftext.language.java.statements.Statement; -import org.emftext.language.java.statements.WhileLoop; -import org.emftext.language.java.statements.impl.BlockImpl; -import org.emftext.language.java.statements.impl.ConditionImpl; -import org.emftext.language.java.statements.impl.DefaultSwitchCaseImpl; -import org.emftext.language.java.statements.impl.EmptyStatementImpl; -import org.emftext.language.java.statements.impl.ExpressionStatementImpl; -import org.emftext.language.java.statements.impl.NormalSwitchCaseImpl; -import org.emftext.language.java.statements.impl.ReturnImpl; -import org.emftext.language.java.statements.impl.SwitchImpl; -import org.emftext.language.java.types.TypeReference; -import org.emftext.language.java.types.impl.VoidImpl; -import org.emftext.language.java.variables.LocalVariable; -import org.emftext.language.java.variables.impl.VariableImpl; - -import de.tu_bs.cs.isf.cbc.cbcclass.CbcclassFactory; -import de.tu_bs.cs.isf.cbc.cbcclass.CbcclassPackage; -import de.tu_bs.cs.isf.cbc.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcclass.Method; -import de.tu_bs.cs.isf.cbc.cbcclass.ModelClass; -import de.tu_bs.cs.isf.cbc.cbcclass.Visibility; -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelPackage; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariable; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SkipStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.VariableKind; -import de.tu_bs.cs.isf.cbc.cbcmodel.Variant; - -public class GenerateModelFromCode { - // Content of Class - private ArrayList jmlLoopConditions = new ArrayList(); - private EList invariants = new BasicEList(); - private EList fields = new BasicEList(); - private EList methods = new BasicEList(); - - private int position = 0; - - // Stuff to change and create corc diagrams - private Resource cbcclassResource; - private List cbcmodelResources = new ArrayList(); - private ResourceSet rs = new ResourceSetImpl(); - private Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - private Map m = reg.getExtensionToFactoryMap(); - - // Info of java file - private String className; - private IFolder folder; - private String packageName; - - public GenerateModelFromCode() { - } - - public void execute(IFile iFile) throws ExecutionException { - - ArrayList jmlMethodConditions = new ArrayList(); - - String javaFileContent = readFileToString(iFile.getLocation().toPortableString()); - - readJMLAnnotations(javaFileContent, jmlMethodConditions); - - EObject abstractSyntaxTreeRoot = JavaResourceUtil.getResourceContent(javaFileContent); - CompilationUnit compilationUnit = (CompilationUnit) abstractSyntaxTreeRoot; - - if (compilationUnit.getClassifiers().isEmpty() - || compilationUnit.getClassifiers().get(0).getMembers().isEmpty()) { - return; - } - if (compilationUnit.getNamespacesAsString() != null && !compilationUnit.getNamespacesAsString().isEmpty()) { - packageName = compilationUnit.getNamespacesAsString().substring(0, compilationUnit.getNamespacesAsString().length()-1); - } - setupProjectStructure(iFile); - - ModelClass modelClass = instantiateModelClass(null); - modelClass.setJavaClassURI(URI.createFileURI(iFile.getProjectRelativePath().toPortableString()).toFileString()); - modelClass.setPackage(packageName); - - if (compilationUnit.getClassifiers().get(0) instanceof ClassImpl) { - ClassImpl javaClass = (ClassImpl) compilationUnit.getClassifiers().get(0); - - for (Member member : javaClass.getMembers()) { - if (member instanceof FieldImpl) { - addFieldToList((FieldImpl) member); - } - - if (member instanceof ClassMethod) { - ClassMethod classMethod = (ClassMethod) member; - String methodName = classMethod.getName(); - - Method method = CbcclassFactory.eINSTANCE.createMethod(); - - Resource cbcmodelResource = setupProjectForCbCModel(method, methodName); - - JavaVariables variables = CbcmodelFactory.eINSTANCE.createJavaVariables(); - fillVariableList(variables, classMethod); - - //String signature = buildSignatureString(classMethod, variables); - settingSignature(classMethod, variables, method); - - //get global conditions from existing diagram - GlobalConditions conditions = CbcmodelFactory.eINSTANCE.createGlobalConditions(); - for (EObject obj : cbcmodelResource.getContents()) { - if (obj instanceof GlobalConditions) { - conditions = (GlobalConditions) obj; - } - } - - CbCFormula formula = createFormula(classMethod.getName()); - formula.setClassName(className); - formula.setMethodName(method.getName()); - method.setCbcStartTriple(formula); - formula.setMethodObj(method); - variables.eSet(CbcmodelPackage.eINSTANCE.getJavaVariables_Fields(), fields); - - //parse JML contract to pre- and postconditions of cbcFormula - String defaultAnnotation = " /*@\r\n" + " @ public normal_behavior\r\n" - + " @ requires true;\r\n" + " @ ensures true;\r\n" + " @ assignable \nothing;\r\n" - + " @*/"; - String jmlAnnotation = classMethod.getAnnotationsAndModifiers().get(0).getLayoutInformations() - .get(0).getHiddenTokenText(); - if (!jmlAnnotation.contains("/*@")) - jmlAnnotation = defaultAnnotation; - int index = 0; - - do { - String currentJmlPart = ""; - index = jmlAnnotation.indexOf("also"); - if (index != -1) { - currentJmlPart = jmlAnnotation.substring(0, index); - } else { - currentJmlPart = jmlAnnotation; - } - jmlAnnotation = jmlAnnotation.substring(index + 4); - - addConditionsToFormula(formula, currentJmlPart, variables, method, conditions); - - } while (index != -1); - - cbcmodelResource.getContents().clear(); - cbcmodelResource.getContents().add(formula); - cbcmodelResource.getContents().add(variables); - cbcmodelResource.getContents().add(conditions); - methods.add(method); - - EList listOfStatements = new BasicEList(); - for (int j = 0; j < classMethod.getStatements().size(); j++) { - listOfStatements.add(null); - } - Collections.copy(listOfStatements, classMethod.getStatements()); - handleListOfStatements(cbcmodelResource, listOfStatements, formula.getStatement()); - for (int i = 0; i < variables.getVariables().size(); i++) { - JavaVariable var = variables.getVariables().get(i); - if (var.getKind().equals(VariableKind.PARAM) || var.getKind().equals(VariableKind.RETURN)) { - variables.getVariables().remove(var); - i--; - } - } - cbcmodelResources.add(cbcmodelResource); - } - } - modelClass.eSet(CbcclassPackage.eINSTANCE.getModelClass_Methods(), methods); - modelClass.eSet(CbcclassPackage.eINSTANCE.getModelClass_Fields(), fields); - modelClass.eSet(CbcclassPackage.eINSTANCE.getModelClass_ClassInvariants(), invariants); - cbcclassResource.getContents().add(modelClass); - saveResource(cbcclassResource); - // TODO: generate class diagram from model - - for(Resource cbcmodelResource: cbcmodelResources) { - saveResource(cbcmodelResource); - GenerateDiagramFromModel gdfm = new GenerateDiagramFromModel(); - gdfm.execute(cbcmodelResource); - } - - - } - - } - - public ModelClass instantiateModelClass(String methodName) throws ExecutionException{ - ModelClass modelClass = null; - - if (methodName == null) { - for (EObject obj : cbcclassResource.getContents()) { - if(obj instanceof ModelClass) { - modelClass = (ModelClass) obj; - modelClass.getMethods().clear(); - modelClass.getClassInvariants().clear(); - modelClass.getFields(); - } - } - - if(modelClass == null) { - modelClass = CbcclassFactory.eINSTANCE.createModelClass(); - modelClass.setName(className); - } - } else { - for (EObject obj : cbcclassResource.getContents()) { - if(obj instanceof ModelClass) { - modelClass = (ModelClass) obj; - } - } - - if(modelClass == null) { - modelClass = CbcclassFactory.eINSTANCE.createModelClass(); - modelClass.setName(className); - } else { - for (Method m : modelClass.getMethods()) { - if (m.getName().equals(methodName)) { - boolean answer = MessageDialog.openQuestion(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell() - , "Confirm", "The selected Diagram already exists and will be replaced. Do you still want to continue?"); - if (!answer) { - throw new ExecutionException("The selected Diagram already exists."); - } - modelClass.getMethods().remove(m); - this.methods.remove(m); - break; - } - } - } - } - return modelClass; - } - - public Resource setupProjectForCbCModel(Method method, String methodName) { - Resource cbcmodelResource; - - //URI cbcDiagramUri = URI.createFileURI(folder.getLocation() + "\\" + methodName + ".cbcmodel"); - URI cbcDiagramUri = URI.createFileURI(folder.getLocation() + File.separator + methodName + ".cbcmodel"); - - - if (!folder.getFile(methodName + ".cbcmodel").exists()) { - - m.put("cbcmodel", new XMIResourceFactoryImpl()); - cbcmodelResource = rs - //.createResource(URI.createFileURI(folder.getLocation() + "\\" + methodName + ".cbcmodel")); - .createResource(URI.createFileURI(folder.getLocation() + File.separator + methodName + ".cbcmodel")); - method.setCbcDiagramURI(cbcDiagramUri.toFileString()); - } else { - IFile cbcmodelFile = folder.getFile(methodName + ".cbcmodel"); - cbcmodelResource = GetDiagramUtil.getResourceFromFile(cbcmodelFile, rs); - } - return cbcmodelResource; - } - - public void fillVariableList(JavaVariables variables, ClassMethod classMethod) { - // add parameters to variables - for (Parameter p : classMethod.getParameters()) { - addToVariables((VariableImpl) p, variables, VariableKind.PARAM); - } - - TypeReference type = classMethod.getTypeReference(); - String typeString = JavaResourceUtil.getText(type); - if (!(type instanceof VoidImpl)) { - String arrayDimensions = ""; - if (classMethod.getArrayDimensionsBefore() != null) { - for (ArrayDimension ad : classMethod.getArrayDimensionsBefore()) { - for (LayoutInformation li : ad.getLayoutInformations()) { - arrayDimensions = arrayDimensions + li.getVisibleTokenText(); - } - } - } - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - typeString = JavaResourceUtil.getText(type) + arrayDimensions; - variable.setName(typeString + " ret"); - variable.setKind(VariableKind.RETURN); - variables.getVariables().add(variable); - } - - } - - public void addFieldToList(FieldImpl fieldImpl) { - String arrayTokens = ""; - if (fieldImpl.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < fieldImpl.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < fieldImpl.getArrayDimensionsBefore().get(k).getLayoutInformations().size(); j++) { - arrayTokens = arrayTokens + fieldImpl.getArrayDimensionsBefore().get(k).getLayoutInformations() - .get(j).getVisibleTokenText(); - } - } - } - Field field = CbcclassFactory.eINSTANCE.createField(); - String type; - if (fieldImpl.getTypeReference().getLayoutInformations().size() > 0) { - type = fieldImpl.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = fieldImpl.getTypeReference().getPureClassifierReference().getLayoutInformations().get(0) - .getVisibleTokenText(); - } - field.setName(fieldImpl.getName()); - field.setType(type + arrayTokens); - if (fieldImpl.isPrivate()) { - field.setVisibility(Visibility.PRIVATE); - } else if (fieldImpl.isProtected()) { - field.setVisibility(Visibility.PROTECTED); - } - - if (fieldImpl.isStatic()) { - field.setIsStatic(true); - } - fields.add(field); - - } - - public void setupProjectStructure(IFile iFile) { - className = iFile.getName().split("\\.")[0]; - //folder = iFile.getProject().getFolder(iFile.getParent().getProjectRelativePath().append("\\" + className)); - folder = iFile.getProject().getFolder(iFile.getParent().getProjectRelativePath().append(File.separator + className)); - if (!folder.exists()) { - try { - folder.create(true, true, null); - } catch (CoreException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - if (!folder.getFile(className + ".cbcclass").exists()) { - - m.put("cbcclass", new XMIResourceFactoryImpl()); - cbcclassResource = rs - //.createResource(URI.createFileURI(folder.getLocation() + "\\" + className + ".cbcclass")); - .createResource(URI.createFileURI(folder.getLocation() + File.separator + className + ".cbcclass")); - } else { - IFile cbcclassFile = folder.getFile(className + ".cbcclass"); - cbcclassResource = GetDiagramUtil.getResourceFromFile(cbcclassFile, rs); - } - - } - -<<<<<<< HEAD - public void saveResource(Resource r) { -======= - public static void saveResource(Resource r) { ->>>>>>> 350a3eb7 (Meta product generator can now generate meta products based on multiple classes. Made many other changes and fixes.) - try { - r.save(Collections.EMPTY_MAP); - r.setTrackingModification(true); - IWorkspace workspace = ResourcesPlugin.getWorkspace(); - IPath iLocation = Path.fromOSString(r.getURI().toFileString()); - IFile ifile = workspace.getRoot().getFileForLocation(iLocation); - ifile.getParent().refreshLocal(1, null); - } catch (IOException | CoreException e) { - e.printStackTrace(); - } - } - - private String buildSignatureString(ClassMethod classMethod, JavaVariables variables) { - String signature = ""; - if (classMethod.isPublic()) { - signature += "public "; - } else if (classMethod.isPrivate()) { - signature += "private "; - } else if (classMethod.isProtected()) { - signature += "protected "; - } - if (classMethod.isStatic()) { - signature += "static "; - } - - StringJoiner sjParameters = new StringJoiner(", "); - String returnType = "void"; - - for (JavaVariable v : variables.getVariables()) { - if (v.getKind().equals(VariableKind.PARAM)) { - sjParameters.add(v.getName()); - } else if (v.getKind().equals(VariableKind.RETURN)) { - returnType = v.getName().substring(0, v.getName().indexOf(' ')); - } - } - - signature += returnType + " " + classMethod.getName() + "(" + sjParameters.toString() + ")"; - - return signature; - } - - public void settingSignature(ClassMethod classMethod, JavaVariables variables, Method method) { - if (classMethod.isPublic()) { - method.setVisibility(Visibility.PUBLIC); - } else if (classMethod.isPrivate()) { - method.setVisibility(Visibility.PRIVATE); - } else if (classMethod.isProtected()) { - method.setVisibility(Visibility.PROTECTED); - } - if (classMethod.isStatic()) { - method.setIsStatic(true); - } - - method.setReturnType("void"); - method.setName(classMethod.getName()); - - for (JavaVariable v : variables.getVariables()) { - if (v.getKind().equals(VariableKind.PARAM)) { - de.tu_bs.cs.isf.cbc.cbcclass.Parameter param = CbcclassFactory.eINSTANCE.createParameter(); - String[] nameSplitted = v.getName().split(" "); - param.setType(nameSplitted[nameSplitted.length-2]); - param.setName(nameSplitted[nameSplitted.length-1]); - method.getParameters().add(param); - } else if (v.getKind().equals(VariableKind.RETURN)) { - method.setReturnType(v.getName().substring(0, v.getName().indexOf(' '))); - de.tu_bs.cs.isf.cbc.cbcclass.Parameter param = CbcclassFactory.eINSTANCE.createParameter(); - String[] nameSplitted = v.getName().split(" "); - param.setType(nameSplitted[nameSplitted.length-2]); - param.setName(nameSplitted[nameSplitted.length-1]); - method.getParameters().add(param); - } - } - } - - /** - * adds the pre and post condition from jmlAnnotation to formula - * - * @param formula - * @param jmlAnnotation contains pre and post condition for formula - * @param variables - * @param conditions - */ - public void addConditionsToFormula(CbCFormula formula, String jmlAnnotation, JavaVariables variables, - Method method, GlobalConditions conditions) { - jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - - jmlAnnotation = cbcWorkaroundForOldKeyword(jmlAnnotation, variables, conditions); - - // adds pre condition - int startPre = jmlAnnotation.indexOf("requires"); - String pre = ""; - - while (startPre != -1) { - int endPre = findEnd(jmlAnnotation, startPre); - pre = pre + " & " + jmlAnnotation.substring(startPre + 9, endPre); - startPre = jmlAnnotation.indexOf("requires", endPre); - } - // delete first & - pre = pre.substring(2); - Condition preCond = CbcmodelFactory.eINSTANCE.createCondition(); - preCond.setName(pre); - formula.getPreCondition().setName(pre); - formula.getStatement().getPreCondition().setName(pre); - - // adds post condition - int startPost = jmlAnnotation.indexOf("ensures"); - String post = ""; - while (startPost != -1) { - int endPost = findEnd(jmlAnnotation, startPost); - String currentPost = jmlAnnotation.substring(startPost + 8, endPost); -// if (jmlAnnotation.contains("\\result")) { -// currentPost = currentPost.replace("\\result", "result"); -// } - post = post + " & " + currentPost; - startPost = jmlAnnotation.indexOf("ensures", endPost); - } - // delete first & - post = post.substring(2); - Condition postCond = CbcmodelFactory.eINSTANCE.createCondition(); - postCond.setName(post); - formula.getPostCondition().setName(post); - formula.getStatement().getPostCondition().setName(post); - } - - private String cbcWorkaroundForOldKeyword(String jmlAnnotation, JavaVariables variables, - GlobalConditions conditions) { - int old = jmlAnnotation.indexOf("\\old"); - while (old != -1) { - int endOld = findEndOfBracket(jmlAnnotation, old + 5); - String oldPart = jmlAnnotation.substring(old + 5, endOld); - String name = ""; - String rest = ""; - int index = oldPart.indexOf("."); - if (index != -1) { - name = oldPart.substring(0, index); - rest = oldPart.substring(index); - } else { - name = oldPart; - } - String newVariableName = "old_" + name; - jmlAnnotation = jmlAnnotation.replace("\\old" + "(" + oldPart + ")", newVariableName + rest); - old = jmlAnnotation.indexOf("\\old", endOld + 5); - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - // find type of old variable - String typeOfVariable = ""; - for (JavaVariable var : variables.getVariables()) { - int indexName = var.getName().indexOf(" " + name); - if (indexName != -1) { - typeOfVariable = var.getName().substring(0, indexName); - break; - } - } - for(Field f: variables.getFields()) { - if(f.getName().equals(name)) { - typeOfVariable = f.getType(); - } - } - variable.setName(typeOfVariable + " " + newVariableName); - variables.getVariables().add(variable); - - boolean conditionAlreadyExists = false; - String newCondition = newVariableName + " = " + name; - for (Condition c : conditions.getConditions()) { - if (c.getName().equals(newCondition)) { - conditionAlreadyExists = true; - } - } - if (!conditionAlreadyExists) { - Condition cond = CbcmodelFactory.eINSTANCE.createCondition(); - cond.setName(newCondition); - - conditions.getConditions().add(cond); - } - } - return jmlAnnotation; - - } - - /** - * replaces special symbols(&& -> &, forall, ...) - * - * @param jmlAnnotation with required symbols - * @return - */ - private String replaceSpecialSymbols(String jmlAnnotation) { - jmlAnnotation = jmlAnnotation.replace("&&", "&"); - jmlAnnotation = jmlAnnotation.replace("==>", "->"); - jmlAnnotation = jmlAnnotation.replace("<==>", "<->"); - jmlAnnotation = jmlAnnotation.replace("||", "|"); - jmlAnnotation = jmlAnnotation.replace("==", "="); - jmlAnnotation = jmlAnnotation.replace("@", ""); - jmlAnnotation = jmlAnnotation.replace("\r\n\t", ""); - - // replace parts of JML with forall - // replace (\forall T x; a; b) by (\forall T x; ((a) -> (b)) and (\forall T x; - // a) by (\forall T x; (a)) - int startForAll = jmlAnnotation.indexOf("\\forall"); - while (startForAll != -1) { - int endForAll = findEndOfBracket(jmlAnnotation, startForAll); - int findFirstSemic = findNextSemic(jmlAnnotation, startForAll, endForAll); - int findSecondSemic = findNextSemic(jmlAnnotation, findFirstSemic + 1, endForAll); - String firstPart = jmlAnnotation.substring(0, findFirstSemic + 1); - if (findSecondSemic != -1) { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, findSecondSemic); - String thirdPart = jmlAnnotation.substring(findSecondSemic + 1, endForAll); - jmlAnnotation = firstPart + "(" + secondPart + ") -> (" + thirdPart + ")" - + jmlAnnotation.substring(endForAll); - } else { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, endForAll); - jmlAnnotation = firstPart + "(" + secondPart + ")" + jmlAnnotation.substring(endForAll); - } - startForAll = jmlAnnotation.indexOf("\\forall", startForAll + 7); - } - - // replace parts of JML with exists - // replace (\exists T x; a; b) by (\exists T x; (a) & (b)) and (\exists T x; a) - // by (\exists T x;(a)) - int startExists = jmlAnnotation.indexOf("\\exists"); - while (startExists != -1) { - int endExists = findEndOfBracket(jmlAnnotation, startExists); - int findFirstSemic = findNextSemic(jmlAnnotation, startExists, endExists); - int findSecondSemic = findNextSemic(jmlAnnotation, findFirstSemic + 1, endExists); - String firstPart = jmlAnnotation.substring(0, findFirstSemic + 1); - if (findSecondSemic != -1) { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, findSecondSemic); - String thirdPart = jmlAnnotation.substring(findSecondSemic + 1, endExists); - jmlAnnotation = firstPart + "(" + secondPart + ") & (" + thirdPart + ")" - + jmlAnnotation.substring(endExists); - } else { - String secondPart = jmlAnnotation.substring(findFirstSemic + 1, endExists); - jmlAnnotation = firstPart + "(" + secondPart + ")" + jmlAnnotation.substring(endExists); - } - startExists = jmlAnnotation.indexOf("\\exists", startExists + 7); - } - return jmlAnnotation; - } - - /** - * finds next semicolon, corresponding to part between start and end position, - * which is a forall or exists part - * - * @param jmlAnnotation part where to look for next semicolon - * @param startForAll start position - * @param endForAll end position - * @return - */ - private int findNextSemic(String jmlAnnotation, int start, int end) { - int index = jmlAnnotation.indexOf(";", start); - if (index != -1 && index < end) { - int leftBracket = jmlAnnotation.indexOf("(", start); - // left bracket, check if semicolon at index position - // belongs to another forall or exists part - if (leftBracket != -1 && leftBracket < index) { - int rightBracket = findEndOfBracket(jmlAnnotation, leftBracket + 1); - return findNextSemic(jmlAnnotation, rightBracket + 1, end); - } else { - return index; - } - } else { - return -1; - } - } - - /** - * finds the end position of the part belonging to 'requires' or 'ensures' - * - * @param jmlAnnotation - * @param startPosition index of requires or ensures - * @return - */ - private int findEnd(String jmlAnnotation, int startPosition) { - int possibleEnd = jmlAnnotation.indexOf(";", startPosition); - int bracketOpen = jmlAnnotation.indexOf("(", startPosition); - while (bracketOpen != -1 && possibleEnd > bracketOpen) { - int findBracketClose = findEndOfBracket(jmlAnnotation, bracketOpen + 1); - possibleEnd = jmlAnnotation.indexOf(";", findBracketClose); - bracketOpen = jmlAnnotation.indexOf("(", findBracketClose); - } - return possibleEnd; - } - - /** - * finds the position of the bracket ')' in jmlAnnotation which belongs to the - * bracket '(' right before starting position - * - * @param jmlAnnotation - * @param start new part in brackets starts here(not the exact position - * of "(", after "(") - * @return end of the part - */ - private int findEndOfBracket(String jmlAnnotation, int start) { - int nextBracketClose = jmlAnnotation.indexOf(")", start); - int nextBracketOpen = jmlAnnotation.indexOf("(", start); - while (nextBracketOpen != -1 && nextBracketOpen < nextBracketClose) { - // nextBracketClose does not belong to start bracket, find next possible bracket - // close - nextBracketOpen = jmlAnnotation.indexOf("(", nextBracketOpen + 1); - nextBracketClose = jmlAnnotation.indexOf(")", nextBracketClose + 1); - } - return nextBracketClose; - } - - /** - * adds loop variant and invariant from jmlAnnotation to - * - * @param r - * - * @param repStatement - * @param jmlAnnotation contains loop variant and invariant - */ - private void addLoopConditions(Resource r, SmallRepetitionStatement repStatement, String jmlAnnotation) { - // adds invariant - int startInvariant = jmlAnnotation.indexOf("loop_invariant"); - int endInvariant = findEnd(jmlAnnotation, startInvariant); - String invariant = jmlAnnotation.substring(startInvariant + 15, endInvariant); - int old = invariant.indexOf("\\old"); - String newVariableName = ""; - ArrayList additionalPre = new ArrayList(); - // new variable old_name - while (old != -1) { - int endOld = findEndOfBracket(invariant, old + 5); - String oldPart = invariant.substring(old + 5, endOld); - String name = ""; - String rest = ""; - int index = oldPart.indexOf("."); - if (index != -1) { - name = oldPart.substring(0, index); - rest = oldPart.substring(index); - } else { - name = oldPart; - } - newVariableName = "old_" + name; - invariant = invariant.replace("\\old" + "(" + oldPart + ")", newVariableName + rest); - additionalPre.add(newVariableName + " = " + name); - old = invariant.indexOf("\\old", endOld + 5); - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - variable.setName(newVariableName); - JavaVariables variableList = (JavaVariables) r.getContents().get(1); - variableList.getVariables().add(variable); - } - CbCFormula formula = (CbCFormula) r.getContents().get(0); - for (String addPre : additionalPre) { - formula.getStatement().getPreCondition() - .setName(formula.getStatement().getPreCondition().getName() + " & " + addPre); - } - UpdateConditionsOfChildren.updateRefinedStatement(formula.getStatement(), - formula.getStatement().getRefinement()); - - repStatement.getInvariant().setName(invariant); - - // adds variant - int startVariant = jmlAnnotation.indexOf("decreases"); - int endVariant = jmlAnnotation.indexOf(";", startVariant); - repStatement.getVariant().setName(jmlAnnotation.substring(startVariant + 10, endVariant)); - } - - /** - * Finds the JML annotations in the file and adds the JML blocks before methods - * to the list jmlMethodConditions and adds the JML blocks before a loop to the - * list jmlLoopConditions. - * - * @param file java code with JML annotations - * @param jmlMethodConditions list for pre/post conditions for methods - * @param jmlLoopConditions list for conditions for loops - */ - public void readJMLAnnotations(String file, ArrayList jmlMethodConditions) { - - Map mapJmlMethodConditions = new HashMap(); - int startJML1 = file.indexOf("/*@"); - int startJML2 = file.indexOf("//@"); - int startJML, endJML; - while (startJML1 != -1 || startJML2 != -1) { - if (startJML2 == -1 || (startJML1 != -1 && startJML1 < startJML2)) { - startJML = startJML1; - endJML = file.indexOf("*/", startJML); - } else { - startJML = startJML2; - endJML = file.indexOf("\n", startJML); - int nextComment = file.indexOf("//@", endJML); - while (nextComment == endJML + 2) { - endJML = file.indexOf("\n", nextComment); - nextComment = file.indexOf("//@", endJML); - } - } - String jmlAnnotation = file.substring(startJML, endJML); - if (jmlAnnotation.contains("loop_invariant")) { - jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - jmlLoopConditions.add(jmlAnnotation); - } else if (jmlAnnotation.contains("normal_behavior")) { - String methodName = parseNextMethodName(file.substring(endJML)); - mapJmlMethodConditions.put(methodName, jmlAnnotation); - } else if (jmlAnnotation.contains("invariant")) { - addInvariantToList(jmlAnnotation); - } - file = file.substring(endJML); - startJML1 = file.indexOf("/*@"); - startJML2 = file.indexOf("//@"); - } - } - - private void addInvariantToList(String jmlAnnotation) { - jmlAnnotation = replaceSpecialSymbols(jmlAnnotation); - int beginInv = jmlAnnotation.indexOf("invariant"); - int endInv; - String newInv; - if (jmlAnnotation.startsWith("//")) { - while (beginInv != -1) { - endInv = jmlAnnotation.indexOf("//", beginInv) - 1; - if (endInv == -2) { - endInv = jmlAnnotation.length() - 2; - } - newInv = jmlAnnotation.substring(beginInv + 10, endInv); - Condition inv = CbcmodelFactory.eINSTANCE.createCondition(); - inv.setName(newInv); - invariants.add(inv); - beginInv = jmlAnnotation.indexOf("invariant", endInv); - } - } else { - // line comment, Ende festlegen, im Moment ;*/ Ende - while (beginInv != -1) { - endInv = findEnd(jmlAnnotation, beginInv); - newInv = jmlAnnotation.substring(beginInv + 10, endInv); - Condition inv = CbcmodelFactory.eINSTANCE.createCondition(); - inv.setName(newInv); - invariants.add(inv); - beginInv = jmlAnnotation.indexOf("invariant", endInv); - } - } - - } - - private String parseNextMethodName(String file) { - - return null; - } - - /** - * Determines name for diagram and model. If there are methods with the same - * name, number consecutively. - * - * @param names list of already used names - * @param potName name of method - * @return unique name - */ - private String findName(List names, String potentialName) { - int i = 2; - String retName = potentialName; - for (String name : names) { - if (name.equals(retName)) { - retName = potentialName + i; - i++; - } - } - names.add(retName); - return retName; - } - - // returns the file with name fileName as a String - public String readFileToString(String file) { - try { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - int i; - String s = ""; - while ((i = br.read()) != -1) { - s = s + (char) i; - } - br.close(); - return s; - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * Handles a list of statements: if there are more than one statement, creates - * CompositionStatement and handles rest of the list - * - * @param r - * @param statements list of statements from java code - * @param parent the statements from the list should be connected to that - * statement - */ - public void handleListOfStatements(Resource r, EList statements, AbstractStatement parent) throws ExecutionException { - if (statements.size() > 1) { - CompositionStatement composition = createComposition(); - parent.setRefinement(composition); - - handleStatement(r, statements.get(0), composition.getFirstStatement()); - int i = 1; - if(statements.get(1) instanceof Assert) { // assert statements contain intermediate conditions - Assert assertSt = (Assert) statements.get(1); - Condition intermediate = CbcmodelFactory.eINSTANCE.createCondition(); - intermediate.setName(JavaResourceUtil.getText(assertSt.getCondition())); - composition.setIntermediateCondition(intermediate); - i = 2; - } - UpdateConditionsOfChildren.updateRefinedStatement(parent, composition); - BasicEList newStatementList = new BasicEList(); - while (i < statements.size()) { - newStatementList.add(statements.get(i)); - i++; - } - handleListOfStatements(r, newStatementList, composition.getSecondStatement());//Todo: throws Error - } else if (statements.size() == 1) { - handleStatement(r, statements.get(0), parent); - - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - } - - /** - * Adds statement to resource r, statement is connected to parent and handled, - * depending on the type of statement - * - * @param r - * @param statement - * @param parent - */ - private void handleStatement(Resource r, Statement statement, AbstractStatement parent) throws ExecutionException { - if (statement instanceof LocalVariableStatement) { - LocalVariableStatement variableStatement = (LocalVariableStatement) statement; - LocalVariable variable = variableStatement.getVariable(); - String text = JavaResourceUtil.getText(variable); - if (text.contains("=")) { - String firstPart = text.substring(0, text.indexOf("=")); - int index = firstPart.lastIndexOf(variable.getName()); - text = text.substring(index); - AbstractStatement s = createStatement(text + ";"); - parent.setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(parent, s); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - addToVariables((VariableImpl) variable, (JavaVariables) r.getContents().get(1), VariableKind.LOCAL); - } else if (statement instanceof WhileLoop) { - WhileLoop loop = (WhileLoop) statement; - Expression condition = loop.getCondition(); - String conditionString = JavaResourceUtil.getText(condition); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SmallRepetitionStatement repStatement = createRepetition(conditionString); - - if (jmlLoopConditions.size() != 0) { - addLoopConditions(r, repStatement, jmlLoopConditions.get(position)); - position++; - } - - parent.setRefinement(repStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, repStatement); - if (loop.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) loop.getStatement(); - handleListOfStatements(r, block.getStatements(), repStatement.getLoopStatement()); - } - } else if (statement instanceof ConditionImpl) { - ConditionImpl conditionImpl = (ConditionImpl) statement; - Expression condition1 = conditionImpl.getCondition(); - // also nicht mehrere else ifs - if (!(conditionImpl.getElseStatement() instanceof ConditionImpl)) { - String conditionString = JavaResourceUtil.getText(condition1); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SelectionStatement selStatement = createSimpleSelection(conditionString, - ("!" + "(" + conditionString + ")")); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - if (conditionImpl.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(0)); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - if (conditionImpl.getElseStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getElseStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(1)); - } else { - SkipStatement skipStatement = createSkipStatement(); - selStatement.getCommands().get(1).setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(selStatement.getCommands().get(1), skipStatement); - } - } else { - SelectionStatement selStatement = createMultiSelection(JavaResourceUtil.getText(condition1)); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - if (conditionImpl.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(0)); - } - int i = 1; - while (conditionImpl.getElseStatement() instanceof ConditionImpl) { - ConditionImpl nextCondition = (ConditionImpl) conditionImpl.getElseStatement(); - Expression condition = nextCondition.getCondition(); - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(JavaResourceUtil.getText(condition)); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - if (nextCondition.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) nextCondition.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(i)); - } - i++; - conditionImpl = nextCondition; - } - - if (conditionImpl.getElseStatement() instanceof BlockImpl) { - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - String condition = ""; - for (Condition guard : selStatement.getGuards()) { - condition = condition + "!(" + guard.getName() + ") & "; - } - condition = condition.substring(0, condition.length() - 3); - conditionNext.setName(condition); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - BlockImpl block = (BlockImpl) conditionImpl.getElseStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(i)); - } - } - - } else if (statement instanceof ReturnImpl) { - ReturnImpl returnImpl = (ReturnImpl) statement; - ReturnStatement retStatement = createReturnStatement( - "ret = " + JavaResourceUtil.getText(returnImpl.getReturnValue()) + ";");//"\\result = " + JavaResourceUtil.getText(returnImpl.getReturnValue()) + ";"); - parent.setRefinement(retStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, retStatement); - } else if (statement instanceof ExpressionStatementImpl) { - ExpressionStatementImpl exprStatement = (ExpressionStatementImpl) statement; - AbstractStatement s = createStatement(JavaResourceUtil.getText(exprStatement.getExpression()) + ";"); - parent.setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(parent, s); - } else if (statement instanceof ForLoop) { - ForLoop loop = (ForLoop) statement; - - CompositionStatement composition = createComposition(); - parent.setRefinement(composition); - UpdateConditionsOfChildren.updateRefinedStatement(parent, composition); - - // Initialization as first part of composition - String init = JavaResourceUtil.getText(loop.getInit()); - AbstractStatement s = createStatement(init + ";"); - composition.getFirstStatement().setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(composition.getFirstStatement(), s); - - // new Composition for actual repetition block and loop variable update - CompositionStatement composition2 = createComposition(); - composition.getSecondStatement().setRefinement(composition2); - UpdateConditionsOfChildren.updateRefinedStatement(composition.getSecondStatement(), composition2); - String conditionString = JavaResourceUtil.getText(loop.getCondition()); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SmallRepetitionStatement repStatement = createRepetition(conditionString); - if (position < jmlLoopConditions.size()) addLoopConditions(r, repStatement, jmlLoopConditions.get(position++)); - composition2.getFirstStatement().setRefinement(repStatement); - UpdateConditionsOfChildren.updateRefinedStatement(composition2.getFirstStatement(), repStatement); - - // loop variable update, pr�fen, ob ich mehrere updates haben kann - String update = JavaResourceUtil.getText(loop.getUpdates().get(0)); - AbstractStatement updateStatement = createStatement(update + ";"); - composition2.getSecondStatement().setRefinement(updateStatement); - UpdateConditionsOfChildren.updateRefinedStatement(composition2.getSecondStatement(), updateStatement); - - if (loop.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) loop.getStatement(); - handleListOfStatements(r, block.getStatements(), repStatement.getLoopStatement()); - } - } else if (statement instanceof SwitchImpl) { - SwitchImpl switchCase = (SwitchImpl) statement; - String switchVariable = JavaResourceUtil.getText(switchCase.getVariable()); - Expression firstCondition = null; - NormalSwitchCaseImpl sc = null; - - if (switchCase.getCases().get(0) instanceof NormalSwitchCaseImpl) { - sc = (NormalSwitchCaseImpl) switchCase.getCases().get(0); - firstCondition = sc.getCondition(); - } - - SelectionStatement selStatement = createMultiSelection( - switchVariable + " = " + JavaResourceUtil.getText(firstCondition)); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - handleListOfStatements(r, sc.getStatements(), selStatement.getCommands().get(0)); - - for (int i = 1; i < switchCase.getCases().size(); i++) { - if (switchCase.getCases().get(i) instanceof NormalSwitchCaseImpl) { - NormalSwitchCaseImpl normalCase = (NormalSwitchCaseImpl) switchCase.getCases().get(i); - Expression condition = normalCase.getCondition(); - - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(switchVariable + " = " + JavaResourceUtil.getText(condition)); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - handleListOfStatements(r, normalCase.getStatements(), nextStatement); - - } else if (switchCase.getCases().get(i) instanceof DefaultSwitchCaseImpl) { - DefaultSwitchCaseImpl defaultCase = (DefaultSwitchCaseImpl) switchCase.getCases().get(i); - String defaultCondition = ""; - for (Condition guard : selStatement.getGuards()) { - defaultCondition = defaultCondition + "!(" + guard.getName() + ") & "; - } - defaultCondition = defaultCondition.substring(0, defaultCondition.length() - 3); - - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(defaultCondition); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - handleListOfStatements(r, defaultCase.getStatements(), nextStatement); - } - } - } else if (statement instanceof EmptyStatementImpl) { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - - } - - // adds variable to the list of JavaVariables - public void addToVariables(VariableImpl variable, JavaVariables variableList, VariableKind kind) { - String arrayTokens = ""; - if (variable.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < variable.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < variable.getArrayDimensionsBefore().get(k).getLayoutInformations().size(); j++) { - arrayTokens = arrayTokens + variable.getArrayDimensionsBefore().get(k).getLayoutInformations() - .get(j).getVisibleTokenText(); - } - } - } - JavaVariable javaVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - String type; - if (variable.getTypeReference().getLayoutInformations().size() > 0) { - type = variable.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = variable.getTypeReference().getPureClassifierReference().getLayoutInformations().get(0) - .getVisibleTokenText(); - } - javaVariable.setName(type + arrayTokens + " " + variable.getName()); - javaVariable.setKind(kind); - variableList.getVariables().add(javaVariable); - } - - public CbCFormula createFormula(String name) { - CbCFormula formula = CbcmodelFactory.eINSTANCE.createCbCFormula(); - formula.setName(name); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement"); - formula.setStatement(statement); - Condition preCondition = CbcmodelFactory.eINSTANCE.createCondition(); - preCondition.setName("pre"); - statement.setPreCondition(preCondition); - Condition preCondition2 = CbcmodelFactory.eINSTANCE.createCondition(); - preCondition2.setName("pre"); - formula.setPreCondition(preCondition2); - Condition postCondition = CbcmodelFactory.eINSTANCE.createCondition(); - postCondition.setName("post"); - statement.setPostCondition(postCondition); - Condition postCondition2 = CbcmodelFactory.eINSTANCE.createCondition(); - postCondition2.setName("post"); - formula.setPostCondition(postCondition2); - return formula; - } - - public CompositionStatement createComposition() { - CompositionStatement compoStatement = CbcmodelFactory.eINSTANCE.createCompositionStatement(); - compoStatement.setName("compositionStatement"); - AbstractStatement statement1 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement1.setName("statement1"); - compoStatement.setFirstStatement(statement1); - Condition pre1 = CbcmodelFactory.eINSTANCE.createCondition(); - pre1.setName(""); - statement1.setPreCondition(pre1); - Condition post1 = CbcmodelFactory.eINSTANCE.createCondition(); - post1.setName(""); - statement1.setPostCondition(post1); - - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName("intermediateCond"); - compoStatement.setIntermediateCondition(condition); - AbstractStatement statement2 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement2.setName("statement2"); - compoStatement.setSecondStatement(statement2); - Condition pre2 = CbcmodelFactory.eINSTANCE.createCondition(); - pre2.setName(""); - statement2.setPreCondition(pre2); - Condition post2 = CbcmodelFactory.eINSTANCE.createCondition(); - post2.setName(""); - statement2.setPostCondition(post2); - return compoStatement; - } - - public SmallRepetitionStatement createRepetition(String guard) { - SmallRepetitionStatement repetitionStatement = CbcmodelFactory.eINSTANCE.createSmallRepetitionStatement(); - repetitionStatement.setName("repetitionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("loop"); - repetitionStatement.setLoopStatement(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard); - repetitionStatement.setGuard(condition); - Condition invariant = CbcmodelFactory.eINSTANCE.createCondition(); - invariant.setName("invariant"); - repetitionStatement.setInvariant(invariant); - Variant variant = CbcmodelFactory.eINSTANCE.createVariant(); - variant.setName("variant"); - repetitionStatement.setVariant(variant); - - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - Condition preRep = CbcmodelFactory.eINSTANCE.createCondition(); - preRep.setName(""); - repetitionStatement.setPreCondition(preRep); - Condition postRep = CbcmodelFactory.eINSTANCE.createCondition(); - postRep.setName(""); - repetitionStatement.setPostCondition(postRep); - return repetitionStatement; - } - - public SelectionStatement createSimpleSelection(String guard1, String guard2) { - SelectionStatement selectionStatement = CbcmodelFactory.eINSTANCE.createSelectionStatement(); - selectionStatement.setName("selectionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement1"); - selectionStatement.getCommands().add(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard1); - selectionStatement.getGuards().add(condition); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - AbstractStatement statement2 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement2.setName("statement2"); - selectionStatement.getCommands().add(statement2); - Condition condition2 = CbcmodelFactory.eINSTANCE.createCondition(); - condition2.setName(guard2); - selectionStatement.getGuards().add(condition2); - Condition pre2 = CbcmodelFactory.eINSTANCE.createCondition(); - pre2.setName(""); - statement2.setPreCondition(pre2); - Condition post2 = CbcmodelFactory.eINSTANCE.createCondition(); - post2.setName(""); - statement2.setPostCondition(post2); - return selectionStatement; - } - - // for several else ifs - public SelectionStatement createMultiSelection(String guard1) { - SelectionStatement selectionStatement = CbcmodelFactory.eINSTANCE.createSelectionStatement(); - selectionStatement.setName("selectionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement1"); - selectionStatement.getCommands().add(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard1); - selectionStatement.getGuards().add(condition); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - return selectionStatement; - } - - public AbstractStatement createStatement(String name) { - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName(name); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - return statement; - } - - public ReturnStatement createReturnStatement(String name) { - ReturnStatement returnStatement = CbcmodelFactory.eINSTANCE.createReturnStatement(); - returnStatement.setName(name); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - returnStatement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - returnStatement.setPostCondition(post); - return returnStatement; - } - - public SkipStatement createSkipStatement() { - SkipStatement statement = CbcmodelFactory.eINSTANCE.createSkipStatement(); - statement.setName(";"); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName("{}"); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName("{}"); - statement.setPostCondition(post); - return statement; - } - - public void setPackageName(String packageName) { - this.packageName = packageName; - } - - public String getPackageName() { - return this.packageName; - } - - public String getClassName() { - return this.className; - } - - public EList getFields() { - return this.fields; - } - - public EList getMethods() { - return this.methods; - } - - public List getCbcmodelResources() { - return this.cbcmodelResources; - } - - public EList getInvariants() { - return this.invariants; - } - - public Resource getCbcclassResource() { - return this.cbcclassResource; - } - -} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelWithoutContract.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelWithoutContract.java deleted file mode 100644 index ffd4df204..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GenerateModelWithoutContract.java +++ /dev/null @@ -1,710 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelFactory; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelPackage; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariable; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SkipStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Variant; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.IPath; -import org.eclipse.emf.common.util.BasicEList; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; -import org.emftext.commons.layout.LayoutInformation; -import org.emftext.language.java.arrays.ArrayDimension; -import org.emftext.language.java.classifiers.impl.ClassImpl; -import org.emftext.language.java.containers.CompilationUnit; -import org.emftext.language.java.expressions.Expression; -import org.emftext.language.java.members.ClassMethod; -import org.emftext.language.java.members.Member; -import org.emftext.language.java.members.impl.FieldImpl; -import org.emftext.language.java.parameters.Parameter; -import org.emftext.language.java.resource.java.util.JavaResourceUtil; -import org.emftext.language.java.statements.ForLoop; -import org.emftext.language.java.statements.LocalVariableStatement; -import org.emftext.language.java.statements.Statement; -import org.emftext.language.java.statements.WhileLoop; -import org.emftext.language.java.statements.impl.BlockImpl; -import org.emftext.language.java.statements.impl.ConditionImpl; -import org.emftext.language.java.statements.impl.DefaultSwitchCaseImpl; -import org.emftext.language.java.statements.impl.EmptyStatementImpl; -import org.emftext.language.java.statements.impl.ExpressionStatementImpl; -import org.emftext.language.java.statements.impl.NormalSwitchCaseImpl; -import org.emftext.language.java.statements.impl.ReturnImpl; -import org.emftext.language.java.statements.impl.SwitchImpl; -import org.emftext.language.java.types.TypeReference; -import org.emftext.language.java.types.impl.VoidImpl; -import org.emftext.language.java.variables.LocalVariable; -import org.emftext.language.java.variables.impl.VariableImpl; - -public class GenerateModelWithoutContract { - - public GenerateModelWithoutContract() { - } - - public void execute(IFile iFile) { - String file = readFileToString(iFile.getLocation().toPortableString()); - - String javaFile = file; - - EObject abstractSyntaxTreeRoot = JavaResourceUtil.getResourceContent(javaFile); - CompilationUnit compilationUnit = (CompilationUnit) abstractSyntaxTreeRoot; - - if (compilationUnit.getClassifiers().isEmpty()) { - return; - } - if (compilationUnit.getClassifiers().get(0).getMembers().isEmpty()) { - return; - } - - List names = new ArrayList(); - if (compilationUnit.getClassifiers().get(0) instanceof ClassImpl) { - ClassImpl javaClass = (ClassImpl) compilationUnit.getClassifiers().get(0); - JavaVariables globalVariables = CbcmodelFactory.eINSTANCE.createJavaVariables(); - // new cbcmodel is created for each method in class - for (Member member : javaClass.getMembers()) { - if (member instanceof FieldImpl) { - FieldImpl globalVariable = (FieldImpl) member; - String arrayTokens = ""; - if (globalVariable.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < globalVariable.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < globalVariable.getArrayDimensionsBefore().get(k).getLayoutInformations() - .size(); j++) { - arrayTokens = arrayTokens + globalVariable.getArrayDimensionsBefore().get(k) - .getLayoutInformations().get(j).getVisibleTokenText(); - } - } - } - JavaVariable javaVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - String type; - if (globalVariable.getTypeReference().getLayoutInformations().size() > 0) { - type = globalVariable.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = globalVariable.getTypeReference().getPureClassifierReference().getLayoutInformations() - .get(0).getVisibleTokenText(); - } - javaVariable.setName(type + arrayTokens + " " + globalVariable.getName()); - globalVariables.getVariables().add(javaVariable); - } - if (member instanceof ClassMethod) { - ClassMethod classMethod = (ClassMethod) member; - - JavaVariables variables = CbcmodelFactory.eINSTANCE.createJavaVariables(); - - // add parameters to variables - for (Parameter p : classMethod.getParameters()) { - addToVariables((VariableImpl) p, variables); - } - // add global variables to variables - for (int j = 0; j < globalVariables.getVariables().size(); j++) { - JavaVariable newVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - newVariable.setName(globalVariables.getVariables().get(j).getName()); - variables.getVariables().add(newVariable); - } - - TypeReference type = classMethod.getTypeReference(); - if (!(type instanceof VoidImpl)) { - String arrayDimensions = ""; - if (classMethod.getArrayDimensionsBefore() != null) { - for (ArrayDimension ad : classMethod.getArrayDimensionsBefore()) { - for (LayoutInformation li : ad.getLayoutInformations()) { - arrayDimensions = arrayDimensions + li.getVisibleTokenText(); - } - } - } - JavaVariable variable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - variable.setName(JavaResourceUtil.getText(type) + arrayDimensions + " result"); - variables.getVariables().add(variable); - } - - // Initialize the Model - CbcmodelPackage.eINSTANCE.eClass(); - // Register Resource Factory for respective Model - Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - Map m = reg.getExtensionToFactoryMap(); - m.put("cbcmodel", new XMIResourceFactoryImpl()); - - String potentialName = classMethod.getName(); - String name = javaClass.getName() + "_" + findName(names, potentialName); - ResourceSet rs = new ResourceSetImpl(); - IPath path = iFile.getLocation().removeLastSegments(1); - - - - // Create Resource and load respective Model Instance - Resource r = rs.createResource(URI.createFileURI(path + "\\" + name + ".cbcmodel")); - CbCFormula formula = createFormula(classMethod.getName()); - GlobalConditions conditions = CbcmodelFactory.eINSTANCE.createGlobalConditions(); - JavaVariables variables2 = CbcmodelFactory.eINSTANCE.createJavaVariables(); - for (JavaVariable jv : variables.getVariables()) { - JavaVariable var = CbcmodelFactory.eINSTANCE.createJavaVariable(); - var.setName(jv.getName()); - variables2.getVariables().add(var); - } - - r.getContents().add(formula); - r.getContents().add(variables2); - r.getContents().add(conditions); - - EList listOfStatements = new BasicEList(); - for (int j = 0; j < classMethod.getStatements().size(); j++) { - listOfStatements.add(null); - } - Collections.copy(listOfStatements, classMethod.getStatements()); - handleListOfStatements(r, listOfStatements, formula.getStatement()); - - // add types to old variables in variable table - for (JavaVariable variable : variables2.getVariables()) { - if (variable.getName().startsWith("old_")) { - String oldVariableName = variable.getName().substring(4); - for (JavaVariable variable2 : variables2.getVariables()) { - int indexName = variable2.getName().indexOf(" " + oldVariableName); - if (indexName != -1) { - String typeOfVariable = variable2.getName().substring(0, indexName); - variable.setName(typeOfVariable + " " + variable.getName()); - break; - } - - } - } - } - - try { - r.save(Collections.EMPTY_MAP); - } catch (IOException e) { - e.printStackTrace(); - } - GenerateDiagramFromModel gdfm = new GenerateDiagramFromModel(); - gdfm.execute(r); - } - } - } - } - - /** - * Determines name for diagram and model. If there are methods with the same - * name, number consecutively. - * - * @param names list of already used names - * @param potName name of method - * @return unique name - */ - private String findName(List names, String potentialName) { - int i = 2; - String retName = potentialName; - for (String name : names) { - if (name.equals(retName)) { - retName = potentialName + i; - i++; - } - } - names.add(retName); - return retName; - } - - // returns the file with name fileName as a String - public String readFileToString(String file) { - try { - FileReader fr = new FileReader(file); - BufferedReader br = new BufferedReader(fr); - int i; - String s = ""; - while ((i = br.read()) != -1) { - s = s + (char) i; - } - br.close(); - return s; - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - /** - * Handles a list of statements: if there are more than one statement, creates - * CompositionStatement and handles rest of the list - * - * @param r - * @param statements list of statements from java code - * @param parent the statements from the list should be connected to that - * statement - */ - public void handleListOfStatements(Resource r, EList statements, AbstractStatement parent) { - if (statements.size() > 1) { - CompositionStatement composition = createComposition(); - parent.setRefinement(composition); - UpdateConditionsOfChildren.updateRefinedStatement(parent, composition); - handleStatement(r, statements.get(0), composition.getFirstStatement()); - BasicEList newStatementList = new BasicEList(); - for (int i = 1; i < statements.size(); i++) { - newStatementList.add(statements.get(i)); - } - handleListOfStatements(r, newStatementList, composition.getSecondStatement()); - } else if (statements.size() == 1) { - handleStatement(r, statements.get(0), parent); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - } - - /** - * Adds statement to resource r, statement is connected to parent and handled, - * depending on the type of statement - * - * @param r - * @param statement - * @param parent - */ - private void handleStatement(Resource r, Statement statement, AbstractStatement parent) { - if (statement instanceof LocalVariableStatement) { - LocalVariableStatement variableStatement = (LocalVariableStatement) statement; - LocalVariable variable = variableStatement.getVariable(); - String text = JavaResourceUtil.getText(variable); - if (text.contains("=")) { - String firstPart = text.substring(0, text.indexOf("=")); - int index = firstPart.lastIndexOf(variable.getName()); - text = text.substring(index); - AbstractStatement s = createStatement(text + ";"); - parent.setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(parent, s); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - addToVariables((VariableImpl) variable, (JavaVariables) r.getContents().get(1)); - } else if (statement instanceof WhileLoop) { - WhileLoop loop = (WhileLoop) statement; - Expression condition = loop.getCondition(); - String conditionString = JavaResourceUtil.getText(condition); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SmallRepetitionStatement repStatement = createRepetition(conditionString); - parent.setRefinement(repStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, repStatement); - if (loop.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) loop.getStatement(); - handleListOfStatements(r, block.getStatements(), repStatement.getLoopStatement()); - } - } else if (statement instanceof ConditionImpl) { - ConditionImpl conditionImpl = (ConditionImpl) statement; - Expression condition1 = conditionImpl.getCondition(); - // also nicht mehrere else ifs - if (!(conditionImpl.getElseStatement() instanceof ConditionImpl)) { - String conditionString = JavaResourceUtil.getText(condition1); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SelectionStatement selStatement = createSimpleSelection(conditionString, - ("!" + "(" + conditionString + ")")); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - if (conditionImpl.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(0)); - } else { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - if (conditionImpl.getElseStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getElseStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(1)); - } else { - SkipStatement skipStatement = createSkipStatement(); - selStatement.getCommands().get(1).setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(selStatement.getCommands().get(1), skipStatement); - } - } else { - SelectionStatement selStatement = createMultiSelection(JavaResourceUtil.getText(condition1)); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - if (conditionImpl.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) conditionImpl.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(0)); - } - int i = 1; - while (conditionImpl.getElseStatement() instanceof ConditionImpl) { - ConditionImpl nextCondition = (ConditionImpl) conditionImpl.getElseStatement(); - Expression condition = nextCondition.getCondition(); - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(JavaResourceUtil.getText(condition)); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - if (nextCondition.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) nextCondition.getStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(i)); - } - i++; - conditionImpl = nextCondition; - } - - if (conditionImpl.getElseStatement() instanceof BlockImpl) { - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - String condition = ""; - for (Condition guard : selStatement.getGuards()) { - condition = condition + "!(" + guard.getName() + ") & "; - } - condition = condition.substring(0, condition.length() - 3); - conditionNext.setName(condition); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - BlockImpl block = (BlockImpl) conditionImpl.getElseStatement(); - handleListOfStatements(r, block.getStatements(), selStatement.getCommands().get(i)); - } - } - - } else if (statement instanceof ReturnImpl) { - ReturnImpl returnImpl = (ReturnImpl) statement; - ReturnStatement retStatement = createReturnStatement( - "result = " + JavaResourceUtil.getText(returnImpl.getReturnValue()) + ";"); - parent.setRefinement(retStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, retStatement); - } else if (statement instanceof ExpressionStatementImpl) { - ExpressionStatementImpl exprStatement = (ExpressionStatementImpl) statement; - AbstractStatement s = createStatement(JavaResourceUtil.getText(exprStatement.getExpression()) + ";"); - parent.setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(parent, s); - } else if (statement instanceof ForLoop) { - ForLoop loop = (ForLoop) statement; - - CompositionStatement composition = createComposition(); - parent.setRefinement(composition); - UpdateConditionsOfChildren.updateRefinedStatement(parent, composition); - - // Initialization as first part of composition - String init = JavaResourceUtil.getText(loop.getInit()); - AbstractStatement s = createStatement(init + ";"); - composition.getFirstStatement().setRefinement(s); - UpdateConditionsOfChildren.updateRefinedStatement(composition.getFirstStatement(), s); - - // new Composition for actual repetition block and loop variable update - CompositionStatement composition2 = createComposition(); - composition.getSecondStatement().setRefinement(composition2); - UpdateConditionsOfChildren.updateRefinedStatement(composition.getSecondStatement(), composition2); - String conditionString = JavaResourceUtil.getText(loop.getCondition()); - conditionString = conditionString.replace("==", "="); - conditionString = conditionString.replace("&&", "&"); - conditionString = conditionString.replace("||", "|"); - SmallRepetitionStatement repStatement = createRepetition(conditionString); - composition2.getFirstStatement().setRefinement(repStatement); - UpdateConditionsOfChildren.updateRefinedStatement(composition2.getFirstStatement(), repStatement); - - // loop variable update, prüfen, ob ich mehrere updates haben kann - String update = JavaResourceUtil.getText(loop.getUpdates().get(0)); - AbstractStatement updateStatement = createStatement(update + ";"); - composition2.getSecondStatement().setRefinement(updateStatement); - UpdateConditionsOfChildren.updateRefinedStatement(composition2.getSecondStatement(), updateStatement); - - if (loop.getStatement() instanceof BlockImpl) { - BlockImpl block = (BlockImpl) loop.getStatement(); - handleListOfStatements(r, block.getStatements(), repStatement.getLoopStatement()); - } - } else if (statement instanceof SwitchImpl) { - SwitchImpl switchCase = (SwitchImpl) statement; - String switchVariable = JavaResourceUtil.getText(switchCase.getVariable()); - Expression firstCondition = null; - NormalSwitchCaseImpl sc = null; - - if (switchCase.getCases().get(0) instanceof NormalSwitchCaseImpl) { - sc = (NormalSwitchCaseImpl) switchCase.getCases().get(0); - firstCondition = sc.getCondition(); - } - - SelectionStatement selStatement = createMultiSelection( - switchVariable + " = " + JavaResourceUtil.getText(firstCondition)); - parent.setRefinement(selStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - handleListOfStatements(r, sc.getStatements(), selStatement.getCommands().get(0)); - - for (int i = 1; i < switchCase.getCases().size(); i++) { - if (switchCase.getCases().get(i) instanceof NormalSwitchCaseImpl) { - NormalSwitchCaseImpl normalCase = (NormalSwitchCaseImpl) switchCase.getCases().get(i); - Expression condition = normalCase.getCondition(); - - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(switchVariable + " = " + JavaResourceUtil.getText(condition)); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - handleListOfStatements(r, normalCase.getStatements(), nextStatement); - - } else if (switchCase.getCases().get(i) instanceof DefaultSwitchCaseImpl) { - DefaultSwitchCaseImpl defaultCase = (DefaultSwitchCaseImpl) switchCase.getCases().get(i); - String defaultCondition = ""; - for (Condition guard : selStatement.getGuards()) { - defaultCondition = defaultCondition + "!(" + guard.getName() + ") & "; - } - defaultCondition = defaultCondition.substring(0, defaultCondition.length() - 3); - - AbstractStatement nextStatement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - nextStatement.setName("statement"); - selStatement.getCommands().add(nextStatement); - Condition conditionNext = CbcmodelFactory.eINSTANCE.createCondition(); - conditionNext.setName(defaultCondition); - selStatement.getGuards().add(conditionNext); - Condition nextPre = CbcmodelFactory.eINSTANCE.createCondition(); - nextPre.setName(""); - nextStatement.setPreCondition(nextPre); - Condition nextPost = CbcmodelFactory.eINSTANCE.createCondition(); - nextPost.setName(""); - nextStatement.setPostCondition(nextPost); - UpdateConditionsOfChildren.updateRefinedStatement(parent, selStatement); - UpdateConditionsOfChildren.updateConditionsofChildren(nextPre); - handleListOfStatements(r, defaultCase.getStatements(), nextStatement); - } - } - } else if(statement instanceof EmptyStatementImpl) { - SkipStatement skipStatement = createSkipStatement(); - parent.setRefinement(skipStatement); - UpdateConditionsOfChildren.updateRefinedStatement(parent, skipStatement); - } - - } - - // adds variable to the list of JavaVariables - public void addToVariables(VariableImpl variable, JavaVariables variableList) { - String arrayTokens = ""; - if (variable.getArrayDimensionsBefore().size() > 0) { - for (int k = 0; k < variable.getArrayDimensionsBefore().size(); k++) { - for (int j = 0; j < variable.getArrayDimensionsBefore().get(k).getLayoutInformations().size(); j++) { - arrayTokens = arrayTokens + variable.getArrayDimensionsBefore().get(k).getLayoutInformations() - .get(j).getVisibleTokenText(); - } - } - } - JavaVariable javaVariable = CbcmodelFactory.eINSTANCE.createJavaVariable(); - String type; - if (variable.getTypeReference().getLayoutInformations().size() > 0) { - type = variable.getTypeReference().getLayoutInformations().get(0).getVisibleTokenText(); - } else { - type = variable.getTypeReference().getPureClassifierReference().getLayoutInformations().get(0) - .getVisibleTokenText(); - } - javaVariable.setName(type + arrayTokens + " " + variable.getName()); - variableList.getVariables().add(javaVariable); - } - - public CbCFormula createFormula(String name) { - CbCFormula formula = CbcmodelFactory.eINSTANCE.createCbCFormula(); - formula.setName(name); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement"); - formula.setStatement(statement); - Condition preCondition = CbcmodelFactory.eINSTANCE.createCondition(); - preCondition.setName("pre"); - statement.setPreCondition(preCondition); - Condition preCondition2 = CbcmodelFactory.eINSTANCE.createCondition(); - preCondition2.setName("pre"); - formula.setPreCondition(preCondition2); - Condition postCondition = CbcmodelFactory.eINSTANCE.createCondition(); - postCondition.setName("post"); - statement.setPostCondition(postCondition); - Condition postCondition2 = CbcmodelFactory.eINSTANCE.createCondition(); - postCondition2.setName("post"); - formula.setPostCondition(postCondition2); - return formula; - } - - public CompositionStatement createComposition() { - CompositionStatement compoStatement = CbcmodelFactory.eINSTANCE.createCompositionStatement(); - compoStatement.setName("compositionStatement"); - AbstractStatement statement1 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement1.setName("statement1"); - compoStatement.setFirstStatement(statement1); - Condition pre1 = CbcmodelFactory.eINSTANCE.createCondition(); - pre1.setName(""); - statement1.setPreCondition(pre1); - Condition post1 = CbcmodelFactory.eINSTANCE.createCondition(); - post1.setName(""); - statement1.setPostCondition(post1); - - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName("intermediateCond"); - compoStatement.setIntermediateCondition(condition); - AbstractStatement statement2 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement2.setName("statement2"); - compoStatement.setSecondStatement(statement2); - Condition pre2 = CbcmodelFactory.eINSTANCE.createCondition(); - pre2.setName(""); - statement2.setPreCondition(pre2); - Condition post2 = CbcmodelFactory.eINSTANCE.createCondition(); - post2.setName(""); - statement2.setPostCondition(post2); - return compoStatement; - } - - public SmallRepetitionStatement createRepetition(String guard) { - SmallRepetitionStatement repetitionStatement = CbcmodelFactory.eINSTANCE.createSmallRepetitionStatement(); - repetitionStatement.setName("repetitionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("loop"); - repetitionStatement.setLoopStatement(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard); - repetitionStatement.setGuard(condition); - Condition invariant = CbcmodelFactory.eINSTANCE.createCondition(); - invariant.setName("invariant"); - repetitionStatement.setInvariant(invariant); - Variant variant = CbcmodelFactory.eINSTANCE.createVariant(); - variant.setName("variant"); - repetitionStatement.setVariant(variant); - - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - Condition preRep = CbcmodelFactory.eINSTANCE.createCondition(); - preRep.setName(""); - repetitionStatement.setPreCondition(preRep); - Condition postRep = CbcmodelFactory.eINSTANCE.createCondition(); - postRep.setName(""); - repetitionStatement.setPostCondition(postRep); - return repetitionStatement; - } - - public SelectionStatement createSimpleSelection(String guard1, String guard2) { - SelectionStatement selectionStatement = CbcmodelFactory.eINSTANCE.createSelectionStatement(); - selectionStatement.setName("selectionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement1"); - selectionStatement.getCommands().add(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard1); - selectionStatement.getGuards().add(condition); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - AbstractStatement statement2 = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement2.setName("statement2"); - selectionStatement.getCommands().add(statement2); - Condition condition2 = CbcmodelFactory.eINSTANCE.createCondition(); - condition2.setName(guard2); - selectionStatement.getGuards().add(condition2); - Condition pre2 = CbcmodelFactory.eINSTANCE.createCondition(); - pre2.setName(""); - statement2.setPreCondition(pre2); - Condition post2 = CbcmodelFactory.eINSTANCE.createCondition(); - post2.setName(""); - statement2.setPostCondition(post2); - return selectionStatement; - } - - // for more else ifs - public SelectionStatement createMultiSelection(String guard1) { - SelectionStatement selectionStatement = CbcmodelFactory.eINSTANCE.createSelectionStatement(); - selectionStatement.setName("selectionStatement"); - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName("statement1"); - selectionStatement.getCommands().add(statement); - Condition condition = CbcmodelFactory.eINSTANCE.createCondition(); - condition.setName(guard1); - selectionStatement.getGuards().add(condition); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - - return selectionStatement; - } - - public AbstractStatement createStatement(String name) { - AbstractStatement statement = CbcmodelFactory.eINSTANCE.createAbstractStatement(); - statement.setName(name); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - statement.setPostCondition(post); - return statement; - } - - public ReturnStatement createReturnStatement(String name) { - ReturnStatement returnStatement = CbcmodelFactory.eINSTANCE.createReturnStatement(); - returnStatement.setName(name); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName(""); - returnStatement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName(""); - returnStatement.setPostCondition(post); - return returnStatement; - } - - public SkipStatement createSkipStatement() { - SkipStatement statement = CbcmodelFactory.eINSTANCE.createSkipStatement(); - statement.setName(";"); - Condition pre = CbcmodelFactory.eINSTANCE.createCondition(); - pre.setName("{}"); - statement.setPreCondition(pre); - Condition post = CbcmodelFactory.eINSTANCE.createCondition(); - post.setName("{}"); - statement.setPostCondition(post); - return statement; - } -} diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java deleted file mode 100644 index b1bcb9b41..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/GetDiagramUtil.java +++ /dev/null @@ -1,88 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import org.eclipse.core.resources.IContainer; -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.common.util.WrappedException; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.graphiti.mm.pictograms.Diagram; - -public class GetDiagramUtil { - - public static Collection getDiagrams(IProject p) { - final List files = getDiagramFiles(p); - final List diagramList = new ArrayList(); - final ResourceSet rSet = new ResourceSetImpl(); - for (final IFile file : files) { - final Diagram diagram = getDiagramFromFile(file, rSet); - if (diagram != null) { - diagramList.add(diagram); - } - } - return diagramList; - } - - private static List getDiagramFiles(IContainer folder) { - final List ret = new ArrayList(); - try { - final IResource[] members = folder.members(); - for (final IResource resource : members) { - if (resource instanceof IContainer) { - ret.addAll(getDiagramFiles((IContainer) resource)); - } else if (resource instanceof IFile) { - final IFile file = (IFile) resource; - if (file.getName().endsWith(".diagram")) { - ret.add(file); - } - } - } - } catch (final CoreException e) { - e.printStackTrace(); - } - return ret; - } - - public static Diagram getDiagramFromFile(IFile file, ResourceSet resourceSet) { - final URI resourceURI = getFileURI(file, resourceSet); - Resource resource; - try { - resource = resourceSet.getResource(resourceURI, true); - if (resource != null) { - // does resource contain a diagram as root object? - final EList contents = resource.getContents(); - for (final EObject object : contents) { - if (object instanceof Diagram) { - return (Diagram) object; - } - } - } - } catch (final WrappedException e) { - e.printStackTrace(); - } - return null; - } - - public static Resource getResourceFromFile(IFile file, ResourceSet resourceSet) { - final URI resourceURI = getFileURI(file, resourceSet); - Resource resource = resourceSet.getResource(resourceURI, true); - return resource; - } - - private static URI getFileURI(IFile file, ResourceSet resourceSet) { - final String pathName = file.getLocation().toPortableString(); - URI resourceURI = URI.createFileURI(pathName); - resourceURI = resourceSet.getURIConverter().normalize(resourceURI); - return resourceURI; - } -} \ No newline at end of file diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateConditionsOfChildren.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateConditionsOfChildren.java deleted file mode 100644 index 70fd5bbd4..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateConditionsOfChildren.java +++ /dev/null @@ -1,240 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.helper; - -import org.eclipse.emf.ecore.EObject; - -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.OriginalStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SkipStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.StrengthWeakStatement; -import de.tu_bs.cs.isf.cbc.util.Parser; - -public class UpdateConditionsOfChildren { - - public static void updateConditionsofChildren(Condition condition) { - AbstractStatement statement = (AbstractStatement) condition.eContainer(); - if (statement instanceof CompositionStatement - || statement instanceof SmallRepetitionStatement - || statement instanceof SelectionStatement) { - if (statement.getParent() != null) { - updateRefinedStatement(statement.getParent(), statement); - } - } else if (statement.getRefinement() != null) { - AbstractStatement refinedStatement = statement.getRefinement(); - updateRefinedStatement(statement, refinedStatement); - } - } - - public static void updateRefinedStatement(AbstractStatement parentStatement, AbstractStatement refinedStatement) { - Condition preParent = parentStatement.getPreCondition(); - Condition postParent = parentStatement.getPostCondition(); -// refinedStatement.setProven(false); - if (refinedStatement instanceof SkipStatement) { - SkipStatement childSkip = (SkipStatement) refinedStatement; - - if (!childSkip.getPreCondition().getName().equals(preParent.getName()) - || !childSkip.getPostCondition().getName().equals(postParent.getName())) { - refinedStatement.setProven(false); - } - - childSkip.getPreCondition().setName(preParent.getName()); - childSkip.getPostCondition().setName(postParent.getName()); - - } else if (refinedStatement instanceof CompositionStatement) { - CompositionStatement childCompo = (CompositionStatement) refinedStatement; - AbstractStatement firstStatement = childCompo.getFirstStatement(); - AbstractStatement secondStatement = childCompo.getSecondStatement(); - - if (!firstStatement.getPreCondition().getName().equals(preParent.getName()) - || !firstStatement.getPostCondition().getName() - .equals(childCompo.getIntermediateCondition().getName()) - || !secondStatement.getPreCondition().getName() - .equals(childCompo.getIntermediateCondition().getName()) - || !secondStatement.getPostCondition().getName().equals(postParent.getName())) { - refinedStatement.setProven(false); - } - - firstStatement.getPreCondition().setName(preParent.getName()); - firstStatement.getPostCondition().setName(childCompo.getIntermediateCondition().getName()); - secondStatement.getPreCondition().setName(childCompo.getIntermediateCondition().getName()); - secondStatement.getPostCondition().setName(postParent.getName()); - - if (firstStatement.getRefinement() != null) { - updateRefinedStatement(firstStatement, firstStatement.getRefinement()); - } - if (secondStatement.getRefinement() != null) { - updateRefinedStatement(secondStatement, secondStatement.getRefinement()); - } - - } else if (refinedStatement instanceof SmallRepetitionStatement) { - SmallRepetitionStatement childRep = (SmallRepetitionStatement) refinedStatement; - AbstractStatement loopStatement = childRep.getLoopStatement(); - - if (!loopStatement.getPreCondition().getName() - .equals("(" + childRep.getInvariant().getName() + ") & (" + childRep.getGuard().getName() + ")") - || !loopStatement.getPostCondition().getName().equals(childRep.getInvariant().getName())) { - refinedStatement.setProven(false); - childRep.setVariantProven(false); - } - if (!loopStatement.getPostCondition().getName().equals(childRep.getInvariant().getName()) - || !childRep.getPreCondition().getName().equals(preParent)) { - childRep.setPreProven(false); - } - if (!loopStatement.getPreCondition().getName() - .equals("(" + childRep.getInvariant().getName() + ") & (" + childRep.getGuard().getName() + ")") - || !childRep.getPostCondition().getName().equals(postParent)) { - childRep.setPostProven(false); - } - - childRep.getPreCondition().setName(preParent.getName()); - childRep.getPostCondition().setName(postParent.getName()); - - loopStatement.getPreCondition() - .setName("(" + childRep.getInvariant().getName() + ") & (" + childRep.getGuard().getName() + ")"); - loopStatement.getPostCondition().setName(childRep.getInvariant().getName()); - - if (loopStatement.getRefinement() != null) { - updateRefinedStatement(loopStatement, loopStatement.getRefinement()); - } - - } else if (refinedStatement instanceof SelectionStatement) { - SelectionStatement childSel = (SelectionStatement) refinedStatement; - - for (int i = 0; i < childSel.getCommands().size(); i++) { - AbstractStatement childStatement = childSel.getCommands().get(i); - Condition childGuard = childSel.getGuards().get(i); - - String preCondParent = Parser.getConditionFromCondition(preParent.getName()); - String modifiablePreParent = Parser.getModifieableVarsFromCondition(preParent.getName()) - .equals("\\\\everything;") ? "" - : "modifiable(" + Parser.getModifieableVarsFromCondition(preParent.getName()) + ");"; - - if (!childStatement.getPreCondition().getName() - .equals(modifiablePreParent + "(" + preCondParent + ") & (" + childGuard.getName() + ")") - || !childStatement.getPostCondition().getName().equals(postParent.getName())) { - refinedStatement.setProven(false); - } - if (!childStatement.getPreCondition().getName() - .equals("(" + preParent.getName() + ") & (" + childGuard.getName() + ")")) { - childSel.setPreProve(false); - } - - childStatement.getPreCondition() - .setName(modifiablePreParent + "(" + preCondParent + ") & (" + childGuard.getName() + ")"); - childStatement.getPostCondition().setName(postParent.getName()); - - if (childStatement.getRefinement() != null) { - updateRefinedStatement(childStatement, childStatement.getRefinement()); - } - } - - } else if (refinedStatement instanceof ReturnStatement) { - ReturnStatement childReturn = (ReturnStatement) refinedStatement; - CbCFormula formula = getFormula(parentStatement); - if (formula != null) { - if (!childReturn.getPreCondition().getName().equals(preParent.getName()) || !childReturn - .getPostCondition().getName().equals(formula.getStatement().getPostCondition().getName())) { - refinedStatement.setProven(false); - } - - childReturn.getPreCondition().setName(preParent.getName()); - childReturn.getPostCondition().setName(formula.getStatement().getPostCondition().getName()); - } - - } else if (refinedStatement instanceof StrengthWeakStatement) { - StrengthWeakStatement childStrengthWeak = (StrengthWeakStatement) refinedStatement; - refinedStatement.setProven(false); - - if (childStrengthWeak.getRefinement() != null) { - updateRefinedStatement(childStrengthWeak, childStrengthWeak.getRefinement()); - } - - } else if (refinedStatement instanceof AbstractStatement) { - AbstractStatement childAbstract = refinedStatement; - - if (!childAbstract.getPreCondition().getName().equals(preParent.getName()) - || !childAbstract.getPostCondition().getName().equals(postParent.getName())) { - refinedStatement.setProven(false); - } - - childAbstract.getPreCondition().setName(preParent.getName()); - childAbstract.getPostCondition().setName(postParent.getName()); - - } else if (refinedStatement instanceof OriginalStatement) { - OriginalStatement childAbstract = (OriginalStatement) refinedStatement; - if (!childAbstract.getPreCondition().getName().equals(preParent.getName()) - || !childAbstract.getPostCondition().getName().equals(postParent.getName())) { - refinedStatement.setProven(false); - } - - childAbstract.getPreCondition().setName(preParent.getName()); - childAbstract.getPostCondition().setName(postParent.getName()); - } - } - - public static CbCFormula getFormula(AbstractStatement statement) { - if (statement.getParent() != null) { - return getFormula(statement.getParent()); - } - EObject parent = statement.eContainer(); - if (parent != null && parent instanceof AbstractStatement) { - return getFormula((AbstractStatement) parent); - } else if (parent != null && parent instanceof CbCFormula) { - return (CbCFormula) parent; - } - return null; - } - - public static void setAllStatementsUnproven(AbstractStatement statement) { - statement.setProven(false); - if (statement instanceof CompositionStatement) { - CompositionStatement childCompo = (CompositionStatement) statement; - AbstractStatement firstStatement = childCompo.getFirstStatement(); - AbstractStatement secondStatement = childCompo.getSecondStatement(); - - firstStatement.setProven(false); - if (firstStatement.getRefinement() != null) { - setAllStatementsUnproven(firstStatement.getRefinement()); - } - secondStatement.setProven(false); - if (secondStatement.getRefinement() != null) { - setAllStatementsUnproven(secondStatement.getRefinement()); - } - - } else if (statement instanceof SmallRepetitionStatement) { - SmallRepetitionStatement childRep = (SmallRepetitionStatement) statement; - AbstractStatement loopStatement = childRep.getLoopStatement(); - - childRep.setPreProven(false); - childRep.setPostProven(false); - childRep.setVariantProven(false); - - loopStatement.setProven(false); - if (loopStatement.getRefinement() != null) { - setAllStatementsUnproven(loopStatement.getRefinement()); - } - - } else if (statement instanceof SelectionStatement) { - SelectionStatement childSel = (SelectionStatement) statement; - childSel.setPreProve(false); - for (int i = 0; i < childSel.getCommands().size(); i++) { - AbstractStatement childStatement = childSel.getCommands().get(i); - - childStatement.setProven(false); - if (childStatement.getRefinement() != null) { - setAllStatementsUnproven(childStatement.getRefinement()); - } - } - - } else if (statement instanceof AbstractStatement) { - if (statement.getRefinement() != null) { - setAllStatementsUnproven(statement.getRefinement()); - } - } - } -} \ No newline at end of file diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateModifiableOfConditions.java.orig b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateModifiableOfConditions.java.orig deleted file mode 100644 index 1303e7d7b..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/helper/UpdateModifiableOfConditions.java.orig +++ /dev/null @@ -1,534 +0,0 @@ -<<<<<<< HEAD -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.emf.common.util.ECollections; -import org.eclipse.emf.ecore.EObject; - -import de.tu_bs.cs.isf.cbc.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.ReturnStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.StrengthWeakStatement; -import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; -import de.tu_bs.cs.isf.cbc.util.IFileUtil; -import de.tu_bs.cs.isf.cbc.util.Parser; -import de.tu_bs.cs.isf.cbc.util.ParserException; - -public class UpdateModifiableOfConditions { - private static Condition currentPost = null; - private static JavaVariables vars = null; - private static IFileUtil fileUtil = null; - - public static void setVars(JavaVariables vars) { - UpdateModifiableOfConditions.vars = vars; - } - - public static void updateAssignmentStatement(AbstractStatement statement, IFileUtil fileHandler) { - fileUtil = fileHandler; - updateAssignmentStatement(statement); - } - - private static void updateAssignmentStatement(AbstractStatement statement) { - copyModifiableVariables(statement.getPreCondition(), statement.getPostCondition()); - if (statement.getName().contains(";") && CompareMethodBodies.readAndTestMethodBodyWithJaMoPP2(statement.getName())) { - try { - List variablesInStatement = Parser.findAllVariables(statement, vars, fileUtil); - List modifiableVariables = new ArrayList<>(statement.getPreCondition().getModifiables()); - for (String var : variablesInStatement) { - if (!modifiableVariables.contains(var)) { - for (Field f : vars.getFields()) { - if (f.getName().equals(var) && f.getType().contains("[]") && !var.contains("[")) { - var = var + "[*]"; - } - } - modifiableVariables.add(var); - } - } - if (statement instanceof ReturnStatement && variablesInStatement.size() == 0) modifiableVariables.add("ret"); - statement.getPostCondition().getModifiables().clear(); - for (String mv : modifiableVariables) { - if (!statement.getPostCondition().getModifiables().contains(mv)) { - statement.getPostCondition().getModifiables().add(mv); - } - } - ECollections.sort(statement.getPostCondition().getModifiables()); - currentPost = statement.getPostCondition(); - updateParent(statement); - } catch (ParserException e) { - e.printStackTrace(); - } - } - } - - private static void updateParent(AbstractStatement statement) { - EObject parent = null; - if (statement.getParent() != null) { - parent = statement.getParent().eContainer(); - } else if (statement.eContainer() != null) { - parent = statement.eContainer(); - } - if (parent != null) { - if (parent instanceof CompositionStatement) { - CompositionStatement compoStatement = (CompositionStatement) parent; - if (statement.getParent().equals(compoStatement.getFirstStatement())) { - copyModifiableVariables(currentPost, compoStatement.getFirstStatement().getPostCondition()); - copyModifiableVariables(currentPost, compoStatement.getSecondStatement().getPreCondition()); - copyModifiableVariables(currentPost, compoStatement.getIntermediateCondition()); - updatePreChild(compoStatement.getSecondStatement()); - copyModifiableVariables(currentPost, compoStatement.getSecondStatement().getPostCondition()); - updateParent(compoStatement); - } else if (statement.getParent().equals(compoStatement.getSecondStatement())) { - copyModifiableVariables(currentPost, compoStatement.getSecondStatement().getPostCondition()); - updateParent(compoStatement); - } - } else if (parent instanceof CbCFormula) { - CbCFormula formula = (CbCFormula) parent; - copyModifiableVariables(currentPost, formula.getStatement().getPostCondition()); - } else if (parent instanceof SmallRepetitionStatement) { - SmallRepetitionStatement repStatement = (SmallRepetitionStatement) parent; - copyModifiableVariables(currentPost, repStatement.getLoopStatement().getPostCondition()); - copyModifiableVariables(repStatement.getPreCondition(), repStatement.getPostCondition()); - updateParent(repStatement); - } else if (parent instanceof SelectionStatement) { - SelectionStatement selStatement = (SelectionStatement) parent;//pre and post of selection are always null - copyModifiableVariables(selStatement.getPreCondition(), selStatement.getPostCondition());//? - if(statement.eContainer() instanceof SelectionStatement) {//abstract stmnt. embedded in Selection - for (AbstractStatement subStatement : selStatement.getCommands()) {//update postcondition of the parent extraselection - if (!statement.equals(subStatement)) {//parent.equals(subStatement) - copySelectionModifiableVariables(subStatement.getPostCondition(), currentPost); - } - } - } else {//Abstract stmnt is child of Selection - for (AbstractStatement subStatement : selStatement.getCommands()) {//update postcondition of the parent extraselection - if (statement.eContainer().equals(subStatement)) {//update post condition of parent - copyModifiableVariables(currentPost, subStatement.getPostCondition()); - } - } - for (AbstractStatement subStatement : selStatement.getCommands()) {//update postcondition of the parent extraselection - if (!statement.eContainer().equals(subStatement)) {//parent.equals(subStatement) - copySelectionModifiableVariables(subStatement.getPostCondition(), currentPost); - } - } - } - //show all modifiables of Selection - copyModifiableVariables(currentPost, selStatement.getCommands().get(0).getPostCondition()); - updateParent(selStatement); - } else if (statement.getParent() instanceof StrengthWeakStatement) { - StrengthWeakStatement parentStatement = (StrengthWeakStatement) statement.getParent(); - copyModifiableVariables(currentPost, parentStatement.getPostCondition()); - updateParent(parentStatement); - } - } - } - - private static void updatePreChild(AbstractStatement statement) { - if (statement.getRefinement() != null) { - AbstractStatement refinement = statement.getRefinement(); - copyModifiableVariables(statement.getPreCondition(), refinement.getPreCondition()); - copyModifiableVariables(statement.getPreCondition(), ((AbstractStatement) refinement.eContainer()).getPreCondition()); - if (refinement instanceof CompositionStatement) { - CompositionStatement subCompoStatement = (CompositionStatement) refinement; - copyModifiableVariables(((AbstractStatement) subCompoStatement.eContainer()).getPreCondition(), subCompoStatement.getFirstStatement().getPreCondition()); - updatePreChild(subCompoStatement.getFirstStatement()); - copyModifiableVariables(currentPost, subCompoStatement.getSecondStatement().getPostCondition()); - } else if (refinement instanceof SelectionStatement) { - SelectionStatement selStatement = (SelectionStatement) refinement; - for (AbstractStatement subSelStatement : selStatement.getCommands()) { - copyModifiableVariables(statement.getPreCondition(), subSelStatement.getPreCondition()); - if (subSelStatement instanceof AbstractStatement) { - updateAssignmentStatement(subSelStatement); - } else { - copyModifiableVariables(statement.getPreCondition(), subSelStatement.getPostCondition()); - } - updatePreChild(subSelStatement); - } - } else if (refinement instanceof SmallRepetitionStatement) { - SmallRepetitionStatement repStatement = (SmallRepetitionStatement) refinement; - AbstractStatement loopStatement = repStatement.getLoopStatement(); - copyModifiableVariables(repStatement.getPreCondition(), loopStatement.getPreCondition()); - if (loopStatement instanceof AbstractStatement) { - updateAssignmentStatement(loopStatement); - } else { - copyModifiableVariables(statement.getPreCondition(), loopStatement.getPostCondition()); - } - updatePreChild(loopStatement); - } else if (refinement instanceof StrengthWeakStatement) { - updatePreChild(refinement); - } else if (refinement instanceof AbstractStatement) { - copyModifiableVariables(statement.getPreCondition(), statement.getPostCondition()); - updateAssignmentStatement(refinement); - } - } - } - - private static void copySelectionModifiableVariables(Condition copyFromCondition, Condition copyToCondition) { - if (copyFromCondition != null && copyToCondition != null && !copyFromCondition.getModifiables().isEmpty()) { - for (String c : copyFromCondition.getModifiables()) { - if (!copyToCondition.getModifiables().contains(c)) { - copyToCondition.getModifiables().add(c); - } - } - } - } - - private static void copyModifiableVariables(Condition copyFromCondition, Condition copyToCondition) { - if (copyFromCondition != null && copyToCondition != null && !copyFromCondition.getModifiables().isEmpty()) { - List temp = new ArrayList<>(); - for (String s: copyFromCondition.getModifiables()) { - temp.add(s); - } - copyToCondition.getModifiables().clear(); - copyToCondition.getModifiables().addAll(temp); - } - } -} -======= -package de.tu_bs.cs.isf.cbc.tool.helper; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import org.eclipse.emf.ecore.EObject; - -import com.google.common.collect.Lists; - -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CompositionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.SelectionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.SmallRepetitionStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.StrengthWeakStatement; -import de.tu_bs.cs.isf.cbc.util.CompareMethodBodies; -import de.tu_bs.cs.isf.cbc.util.IFileUtil; -import de.tu_bs.cs.isf.cbc.util.Parser; -import de.tu_bs.cs.isf.cbc.util.ParserException; - -public class UpdateModifiableOfConditions { - private static Condition currentPost = null; - private static JavaVariables vars = null; - private static IFileUtil fileUtil = null; - - public static void updateAssignmentStatement(AbstractStatement statement, IFileUtil fileHandler) { - fileUtil = fileHandler; - updateAssignmentStatement(statement); - - } - - public static void updateAssignmentStatement(AbstractStatement statement) { - copyModifiableVariables(statement.getPreCondition(), statement.getPostCondition()); - if (statement.getName().contains(";") - && CompareMethodBodies.readAndTestMethodBodyWithJaMoPP2(statement.getName())) { - List modifiableVariables = getModifiableVariables(statement.getPreCondition()); - - try { - List variablesInStatement = Parser.findAllVariables(statement, vars, fileUtil); - if(!modifiableVariables.contains("\\everything")) { - for (String var : variablesInStatement) { - if (!modifiableVariables.contains(var)) { - if(modifiableVariables.contains("\\nothing")) - modifiableVariables = Lists.newArrayList(); - for (Field f : vars.getFields()) { - if (f.getName().equals(var) && f.getType().contains("[]") && !var.contains("[")) { - var = var + "[*]"; - } - } - modifiableVariables.add(var); - } - } - } - - addModifiableVariablesToStatement(statement.getPostCondition(), modifiableVariables); - currentPost = statement.getPostCondition(); - - //if container is select, add to it postconditions of other commands - /*if(statement.eContainer() instanceof SelectionStatement) { - SelectionStatement selectionStatement = (SelectionStatement) statement.eContainer(); - for(int i = 0; i < selectionStatement.getCommands().size(); i++) { - AbstractStatement command = selectionStatement.getCommands().get(i); - if(command.getPostCondition() != currentPost) { - copyModifiableVariables(command.getPostCondition(), currentPost); - } - } - }*/ - - updateParent(statement); - } catch (ParserException e) { - e.printStackTrace(); - } - } - } - - private static void updateParent(AbstractStatement statement) { - - /*if(statement instanceof SelectionStatement) { - SelectionStatement selectionStatement = (SelectionStatement) statement; - for(int i = 0; i < selectionStatement.getCommands().size(); i++) { - AbstractStatement command = selectionStatement.getCommands().get(i); - if(command.getPostCondition() != currentPost) { - copySelectionModifiableVariables(command.getPostCondition(), currentPost); - } - } - }*/ - - EObject parent = null; - if (statement.getParent() != null) { - parent = statement.getParent().eContainer(); - } else if (statement.eContainer() != null) { - parent = statement.eContainer(); - } - if (parent != null) { - if (parent instanceof CompositionStatement) { - CompositionStatement compoStatement = (CompositionStatement) parent; - if (statement.getParent().equals(compoStatement.getFirstStatement())) { - copyModifiableVariables(currentPost, compoStatement.getFirstStatement().getPostCondition()); - copyModifiableVariables(currentPost, compoStatement.getSecondStatement().getPreCondition()); - copyModifiableVariables(currentPost, compoStatement.getIntermediateCondition()); - updatePreChild(compoStatement.getSecondStatement()); - copyModifiableVariables(currentPost, compoStatement.getSecondStatement().getPostCondition()); - updateParent(compoStatement); - } else if (statement.getParent().equals(compoStatement.getSecondStatement())) { - copyModifiableVariables(currentPost, compoStatement.getSecondStatement().getPostCondition()); - updateParent(compoStatement); - } - } else if (parent instanceof CbCFormula) { - CbCFormula formula = (CbCFormula) parent; - copyModifiableVariables(currentPost, formula.getStatement().getPostCondition()); - } else if (parent instanceof SmallRepetitionStatement) { - SmallRepetitionStatement repStatement = (SmallRepetitionStatement) parent; - copyModifiableVariables(currentPost, repStatement.getLoopStatement().getPostCondition()); - copyModifiableVariables(repStatement.getPreCondition(), repStatement.getPostCondition()); - updateParent(repStatement); - } else if (parent instanceof SelectionStatement) { - SelectionStatement selStatement = (SelectionStatement) parent;//pre and post of selection are always null - copyModifiableVariables(selStatement.getPreCondition(), selStatement.getPostCondition());//? - if(statement.eContainer() instanceof SelectionStatement) {//abstract stmnt. embedded in Selection - for (AbstractStatement subStatement : selStatement.getCommands()) {//update postcondition of the parent extraselection - if (!statement.equals(subStatement)) {//parent.equals(subStatement) - copySelectionModifiableVariables(subStatement.getPostCondition(), currentPost); - } - } - } else {//Abstract stmnt is child of Selection - for (AbstractStatement subStatement : selStatement.getCommands()) {//update postcondition of the parent extraselection - if (statement.eContainer().equals(subStatement)) {//update post condition of parent - copyModifiableVariables(currentPost, subStatement.getPostCondition()); - } - } - for (AbstractStatement subStatement : selStatement.getCommands()) {//update postcondition of the parent extraselection - if (!statement.eContainer().equals(subStatement)) {//parent.equals(subStatement) - copySelectionModifiableVariables(subStatement.getPostCondition(), currentPost); - } - } - } - - //show all modifiables of Selection - copyModifiableVariables(currentPost, selStatement.getCommands().get(0).getPostCondition()); - - updateParent(selStatement); - } else if (statement.getParent() instanceof StrengthWeakStatement) { - StrengthWeakStatement parentStatement = (StrengthWeakStatement) statement.getParent(); - copyModifiableVariables(currentPost, parentStatement.getPostCondition()); - updateParent(parentStatement); - } - } - - } - - private static void updatePreChild(AbstractStatement statement) { - if (statement.getRefinement() != null) { - AbstractStatement refinement = statement.getRefinement(); - copyModifiableVariables(statement.getPreCondition(), refinement.getPreCondition()); - copyModifiableVariables(statement.getPreCondition(), - ((AbstractStatement) refinement.eContainer()).getPreCondition()); - if (refinement instanceof CompositionStatement) { - CompositionStatement subCompoStatement = (CompositionStatement) refinement; - copyModifiableVariables(((AbstractStatement) subCompoStatement.eContainer()).getPreCondition(), - subCompoStatement.getFirstStatement().getPreCondition()); - updatePreChild(subCompoStatement.getFirstStatement()); - copyModifiableVariables(currentPost, subCompoStatement.getSecondStatement().getPostCondition()); - } else if (refinement instanceof SelectionStatement) { - SelectionStatement selStatement = (SelectionStatement) refinement; - for (AbstractStatement subSelStatement : selStatement.getCommands()) { - copyModifiableVariables(statement.getPreCondition(), subSelStatement.getPreCondition()); - if (subSelStatement instanceof AbstractStatement) { - updateAssignmentStatement(subSelStatement); - } else { - copyModifiableVariables(statement.getPreCondition(), subSelStatement.getPostCondition()); - } - - updatePreChild(subSelStatement); - } - } else if (refinement instanceof SmallRepetitionStatement) { - SmallRepetitionStatement repStatement = (SmallRepetitionStatement) refinement; - AbstractStatement loopStatement = repStatement.getLoopStatement(); - copyModifiableVariables(repStatement.getPreCondition(), loopStatement.getPreCondition()); - if (loopStatement instanceof AbstractStatement) { - updateAssignmentStatement(loopStatement); - } else { - copyModifiableVariables(statement.getPreCondition(), loopStatement.getPostCondition()); - } - updatePreChild(loopStatement); - } else if (refinement instanceof StrengthWeakStatement) { - updatePreChild(refinement); - } else if (refinement instanceof AbstractStatement) { - copyModifiableVariables(statement.getPreCondition(), statement.getPostCondition()); - updateAssignmentStatement(refinement); - } - } - } - - private static void copySelectionModifiableVariables(Condition copyFromCondition, Condition copyToCondition) { - if (copyFromCondition != null && copyToCondition != null - && copyFromCondition.getName().contains("modifiable(")) { - String variables = null; - String[] splittedCondition = copyFromCondition.getName().split(";", 2); - if (splittedCondition.length > 1) { - variables = splittedCondition[0]; - } - String conditionString = null; - String variables2 = ""; - if(copyToCondition.getName().contains("modifiable")) { - conditionString = copyToCondition.getName().split(";", 2)[1]; - variables2 = copyToCondition.getName().split(";", 2)[0]; - } else { - conditionString = copyToCondition.getName(); - } - - if (!variables2.isEmpty()) { - if(!variables2.contains("nothing") && !variables.contains("nothing")) { - variables = variables.substring(0, variables.indexOf(')')) + "," + variables2.substring(variables2.indexOf('(') + 1, variables2.indexOf(')')) + ")"; - String[] v = variables.substring(variables.indexOf('(') + 1, variables.indexOf(')')).split(","); - v = Arrays.stream(v).distinct().toArray(String[]::new); - variables = "modifiable(" + v[0]; - for(int i = 1; i < v.length; i++) { - variables = variables + "," + v[i]; - } - variables = variables + ")"; - } else if(!variables2.contains("nothing") && variables.contains("nothing")) { - variables = variables2; - } - } - - if (variables != null) { - copyToCondition - .setName(variables + ";" + System.getProperty("line.separator") + conditionString.trim()); - } else { - copyToCondition.setName(conditionString.trim()); - } - } - } - - private static void copyModifiableVariables(Condition copyFromCondition, Condition copyToCondition) { - if (copyFromCondition != null && copyToCondition != null - && copyFromCondition.getName().contains("modifiable(")) { - /*if(copyToCondition.eContainer().eContainer().eContainer() instanceof SelectionStatement) { - String variables = null; - String[] splittedCondition = copyFromCondition.getName().split(";", 2); - if (splittedCondition.length > 1) { - variables = splittedCondition[0]; - } - String conditionString = null; - String[] splittedCondition2 = copyToCondition.getName().split(";", 2); - if (splittedCondition2.length > 1) { - conditionString = splittedCondition2[1]; - String variables2 = splittedCondition2[0]; - if(!variables2.contains("nothing") && !variables.contains("nothing")) { - variables = variables.substring(0, variables.indexOf(')')) + "," + variables2.substring(variables2.indexOf('(') + 1, variables2.indexOf(')')) + ")"; - } else if(!variables2.contains("nothing") && variables.contains("nothing")) { - variables = variables2; - } - } else { - conditionString = splittedCondition2[0]; - } - if (variables != null) { - copyToCondition - .setName(variables + ";" + System.getProperty("line.separator") + conditionString.trim()); - } else { - copyToCondition.setName(conditionString.trim()); - } - } else*/ { - String variables = null; - String[] splittedCondition = copyFromCondition.getName().split(";", 2); - if (splittedCondition.length > 1) { - variables = splittedCondition[0]; - } - String conditionString = null; - - if(copyToCondition.getName().contains("modifiable")) { - conditionString = copyToCondition.getName().split(";", 2)[1]; - } else { - conditionString = copyToCondition.getName(); - } - - if (variables != null) { - copyToCondition - .setName(variables + ";" + System.getProperty("line.separator") + conditionString.trim()); - } else { - copyToCondition.setName(conditionString.trim()); - } - } - } - - } - - private static void addModifiableVariablesToStatement(Condition condition, List modifiableVariables) { - String variables = ""; - String conditionString = condition.getName(); - if (condition.getName().contains("modifiable(")) { - String[] splittedCondition = condition.getName().split(";", 2); - if (splittedCondition.length > 1) { - variables = splittedCondition[0]; - conditionString = splittedCondition[1]; - } - } - Collections.sort(modifiableVariables); - if (modifiableVariables.size() == 1) { - variables = "modifiable(" + modifiableVariables.get(0) + "); "; - - } else if (modifiableVariables.size() > 1) { - variables = "modifiable(" + String.join(",", modifiableVariables) + "); "; - } - if(variables.contains("nothing")) { - condition.setName(variables + conditionString); - } else { - condition.setName(variables + conditionString); - } - } - - public static List getModifiableVariables(Condition condition) { - String variables = null; - List variablesAsList = Lists.newArrayList(); - if (condition.getName().contains("modifiable")) { - if(condition.getName().split(";").length > 1) - variables = condition.getName().split(";")[0]; - } - if(variables != null && (variables.equals("modifiable(\\nothing)") || variables.equals("modifiable(\\everything)"))) { - return Lists.newArrayList(variables.substring(variables.indexOf("(") + 1, variables.indexOf(")"))); - } - if (variables != null) { - variables = variables.substring(1); - variables = variables.substring(variables.indexOf("(") + 1, variables.indexOf(")")); - variables = variables.replace(" ", ""); - variables = variables.replace(System.getProperty("line.separator"), ""); - variablesAsList = Lists.newArrayList(variables.split(",")); - } - return variablesAsList; - } - - public static void setVars(JavaVariables vars) { - UpdateModifiableOfConditions.vars = vars; - } - -} ->>>>>>> 0198ee19 (Merge branch 'CorC2.0_kodetzki' of https://github.com/TUBS-ISF/CorC into CorC2.0) diff --git a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/model/CbcModelUtil.java b/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/model/CbcModelUtil.java deleted file mode 100644 index 94039af96..000000000 --- a/de.tu-bs.cs.isf.cbc.tool/src/de/tu_bs/cs/isf/cbc/tool/model/CbcModelUtil.java +++ /dev/null @@ -1,95 +0,0 @@ -package de.tu_bs.cs.isf.cbc.tool.model; - -import java.io.IOException; -import java.util.Collections; -import java.util.Map; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; -import org.eclipse.graphiti.mm.pictograms.Diagram; - -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.ModelClass; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelPackage; -import de.tu_bs.cs.isf.cbc.cbcmodel.GlobalConditions; -import de.tu_bs.cs.isf.cbc.cbcmodel.JavaVariables; -import de.tu_bs.cs.isf.cbc.cbcmodel.Renaming; - -public class CbcModelUtil { - - public static void saveFormulaToModelFile(final CbCFormula formula, final Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(formula); - } - - public static void saveVariablesToModelFile(final JavaVariables variables, final Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(variables); - } - - public static CbCFormula readFormula(URI uri) { - CbcmodelPackage.eINSTANCE.eClass(); - Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - Map m = reg.getExtensionToFactoryMap(); - m.put("cbcmodel", new XMIResourceFactoryImpl()); - ResourceSet rs = new ResourceSetImpl(); - Resource r = rs.getResource(uri, true); - for (EObject obj : r.getContents()) { - if (obj instanceof CbCFormula) { - CbCFormula formula = (CbCFormula) obj; - return formula; - } - } - return null; - } - - public static ModelClass readModelClass(URI uri) { - CbcmodelPackage.eINSTANCE.eClass(); - Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - Map m = reg.getExtensionToFactoryMap(); - m.put("cbcclass", new XMIResourceFactoryImpl()); - ResourceSet rs = new ResourceSetImpl(); - Resource r = rs.getResource(uri, true); - for (EObject obj : r.getContents()) { - if (obj instanceof ModelClass) { - ModelClass modelclass = (ModelClass) obj; - return modelclass; - } - } - return null; - } - - public static void saveGlobalConditionsToModelFile(GlobalConditions conditions, Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(conditions); - } - - public static void saveRenamingToModelFile(Renaming renaming, Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(renaming); - } - - public static Resource getResource(Diagram d) throws CoreException, IOException { - URI uri = d.eResource().getURI(); - uri = uri.trimFragment(); - uri = uri.trimFileExtension(); - uri = uri.appendFileExtension("cbcmodel"); - ResourceSet rSet = d.eResource().getResourceSet(); - final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); - IResource file = workspaceRoot.findMember(uri.toPlatformString(true)); - if (file == null || !file.exists()) { - Resource createResource = rSet.createResource(uri); - createResource.save(Collections.emptyMap()); - createResource.setTrackingModification(true); - } - return rSet.getResource(uri, true); - } -} diff --git a/de.tu-bs.cs.isf.cbcclass.tool/bin/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.class b/de.tu-bs.cs.isf.cbcclass.tool/bin/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.class deleted file mode 100644 index 04741075c824c2920055df840faa40e646848866..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 847 zcmbtSO>fgc5Ph4ZNl4SQamz;U`ts;dqN~i^=YHe?vMUEZW>-;Y+ zAaURa@S_m3X(NJ4Ph4j9&CYxKc6NXM`u+pJ30_uEU^osW*ZGx~aX;fK8*|_D{YYdP z*GUrbK#4FFQ|@?eB1to^pNg8tLM{1TyPQ9~<(u(Jb&my76Njl}H zUZzvw>%X`R<-xFX*8Rv}^*)Qa;E{+!KGLa*!()aGCy6sHV(p43msQ+j*bSt;uxk66 zO;&BPY8#g}L#_M%{Aw_~a6A1f>I?^W_Rh$>j2Y^NaoJyTHW^xXa`Je|DxauW>9-8U z!y}iWHWv_X-Jj` zg44NBk&#}EH>=_?!W5&Kv}nNWpL0afgxwu09Q zZ>-=3^^kEiDO$wflo{o<_BU*QSxDTcXauQ<2Ndf!>xXzms6>KGvO~w4zGmB6xAwkb hzild@<%MZX3B+P4acpoZ8;T7Mq-i>m#`b`u5i=uV zcT2aV`@W<}SK6j&o30`bSF78%fqkmM!zan(e;3oOjQ?_xYv& zJ^d_zUHGqpfIxf3N*QTwD3KgW>yC58HPZ@00@s|-PwQG*&(3HE6DN$ME6}{l%$n{V zfnay^s6c3lE5it)RYen;1=hsPtTCR?Bn*2}Poxbhk6TGSeN?wi`CNJ#a%W9Ppd-H6 za!g>gqn|d$q)(nd0>15Srp=sVXfw8+n>Afi%Ve~inRG3_$T->^rY>({ z(#i1fT++z7rj>ORvy;T|UD zc{|BuqecJbHcE~vVIwomtn$*Kq)#g=j&YtiHmlHI$#%B*MsOUFp#R4yuCK9}3D z8+#S7&h_}WVEOn}ydL|Awoy(Sf!;bBz7z~H$A(ngfnkv0S5LbU~B>+zVa7TS#&L z7A(0yMFL3yMaF7b46=Wvrlh#H&KBmhne=83u4fidG>;F;R{0@;vBuFdZ~Pmx463ZP!MtsV!1Q_uUsCa9d_}UVG+ak&N>629hCKPZMm?3rTc@^Klqs;w^=Yv)IQn6{*&R&ajF^V&IOvSe(o33L8U1(O5R>>}Ru?62L zHZE_}RPbH)ruyE`WlYV?o6WiYa5=xlM2ou{3`9%5ZrgTl`AF4+XZ>_ih0X&&9HTBuLS>r=)NFxTvClrx~#68n#a81vXR_ zm(kLDg7*xbRq!JgmP#b$uPUCyWl|?=%rTyhvIgG?Fs9(g0vqf5I$R7oe*Jq51_GM&4wHMI&9H0E!Zt%28nO59@jSY3&SVzZZpN%E9qkM$LBGiQqe`U04$gtyug*+Lw;(T=F6G*VoK0c_)PD!}WoouM}|;9IeS zYFn`rx79IO9r|D$w|jkV^PIa_hv=mBW?HrB>n=h1-_9=8dmbb5=MC}R_VM#L6fb|A zWc$B}y9#)-z<7Ue=sZ#d%my$R>I}VzRh^*%cwm17H}>@w;PQP_XVXQzwSad8(AmVV z?+c)>m)8#jah6tt-lh+5i-BACJHTz-h7CkuBQc0F{sAJem+_C|HcVj0 z>{hT}L0*BWaK2;?w&FAREY&ex#ZE44q4=qD_*?;BLG} ze6N7-2QhUCPx0aWcz;hZQi+b24+UJ{;M@EdHg`4`a7o}Yo|h0kj~5;$dQF${!l2Tr zoRwdHN*u4eA|y&7A4>b^*6k$35IT6q>%uVlFhZR6V*&?oHzQB*bY}3`;$ckE=zvF) zQywe`-mR}ODAoaxXD`FF(ws!m)zadHqzW*(LM=ignHc86j z%0F0mWfq(rU9t6U` diff --git a/de.tu-bs.cs.isf.cbcclass.tool/src/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.java b/de.tu-bs.cs.isf.cbcclass.tool/src/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.java deleted file mode 100644 index 98f849b11..000000000 --- a/de.tu-bs.cs.isf.cbcclass.tool/src/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.tu_bs.cs.isf.cbcclass.tool.diagram; - -import org.eclipse.graphiti.ui.platform.AbstractImageProvider; - -public class CbCClassImageProvider extends AbstractImageProvider { - - // The prefix for all identifiers of this image provider - protected static final String PREFIX = - "de.tu_bs.cs.isf.cbc.tool."; - - // The image identifier for an EReference. - public static final String IMG_PROVEN= PREFIX + "proven"; - public static final String IMG_UNPROVEN= PREFIX + "unproven"; - - @Override - protected void addAvailableImages() { - // register the path for each image identifier - addImageFilePath(IMG_PROVEN, "icons/YESGRN.gif"); - addImageFilePath(IMG_UNPROVEN, "icons/NORED.gif"); - } - -} \ No newline at end of file diff --git a/de.tu-bs.cs.isf.cbcclass.tool/src/model/CbcClassUtil.java b/de.tu-bs.cs.isf.cbcclass.tool/src/model/CbcClassUtil.java deleted file mode 100644 index 969430d45..000000000 --- a/de.tu-bs.cs.isf.cbcclass.tool/src/model/CbcClassUtil.java +++ /dev/null @@ -1,79 +0,0 @@ -package model; - -import java.io.IOException; -import java.util.Collections; -import java.util.Map; - -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.emf.ecore.resource.ResourceSet; -import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; -import org.eclipse.graphiti.mm.pictograms.Diagram; - -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Field; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Method; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.ModelClass; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbcmodelPackage; -import de.tu_bs.cs.isf.cbc.cbcmodel.Condition; - -public class CbcClassUtil { - - public static void saveModelClass(ModelClass modelClass, Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(modelClass); - } - - public static void saveField(Field field, Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(field); - } - - public static void saveCondition(Condition condition, Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(condition); - } - - public static void saveMethod(Method method, Diagram d) throws CoreException, IOException { - Resource resource = getResource(d); - resource.getContents().add(method); - } - - public static Resource getResource(Diagram d) throws CoreException, IOException { - URI uri = d.eResource().getURI(); - uri = uri.trimFragment(); - uri = uri.trimFileExtension(); - uri = uri.appendFileExtension("cbcclass"); - ResourceSet rSet = d.eResource().getResourceSet(); - final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot(); - IResource file = workspaceRoot.findMember(uri.toPlatformString(true)); - if (file == null || !file.exists()) { - Resource createResource = rSet.createResource(uri); - createResource.save(Collections.emptyMap()); - createResource.setTrackingModification(true); - } - return rSet.getResource(uri, true); - } - - public static CbCFormula readFormula(URI uri) { - CbcmodelPackage.eINSTANCE.eClass(); - Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - Map m = reg.getExtensionToFactoryMap(); - m.put("cbcmodel", new XMIResourceFactoryImpl()); - ResourceSet rs = new ResourceSetImpl(); - Resource r = rs.getResource(uri, true); - for (EObject obj : r.getContents()) { - if (obj instanceof CbCFormula) { - CbCFormula formula = (CbCFormula) obj; - return formula; - } - } - return null; - } -} \ No newline at end of file diff --git a/de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/Visibility.java b/de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/Visibility.java deleted file mode 100644 index 5b974edb5..000000000 --- a/de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/Visibility.java +++ /dev/null @@ -1,252 +0,0 @@ -/** - */ -package de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import org.eclipse.emf.common.util.Enumerator; - -/** - * - * A representation of the literals of the enumeration 'Visibility', - * and utility methods for working with them. - * - * @see de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.CbcclassPackage#getVisibility() - * @model - * @generated - */ -public enum Visibility implements Enumerator { - /** - * The 'PUBLIC' literal object. - * - * - * @see #PUBLIC_VALUE - * @generated - * @ordered - */ - PUBLIC(0, "PUBLIC", "PUBLIC"), - - /** - * The 'PRIVATE' literal object. - * - * - * @see #PRIVATE_VALUE - * @generated - * @ordered - */ - PRIVATE(1, "PRIVATE", "PRIVATE"), - - /** - * The 'PROTECTED' literal object. - * - * - * @see #PROTECTED_VALUE - * @generated - * @ordered - */ - PROTECTED(2, "PROTECTED", "PROTECTED"), - - /** - * The 'PACKAGE' literal object. - * - * - * @see #PACKAGE_VALUE - * @generated - * @ordered - */ - PACKAGE(3, "PACKAGE", "PACKAGE"); - - /** - * The 'PUBLIC' literal value. - * - * - * @see #PUBLIC - * @model - * @generated - * @ordered - */ - public static final int PUBLIC_VALUE = 0; - - /** - * The 'PRIVATE' literal value. - * - * - * @see #PRIVATE - * @model - * @generated - * @ordered - */ - public static final int PRIVATE_VALUE = 1; - - /** - * The 'PROTECTED' literal value. - * - * - * @see #PROTECTED - * @model - * @generated - * @ordered - */ - public static final int PROTECTED_VALUE = 2; - - /** - * The 'PACKAGE' literal value. - * - * - * @see #PACKAGE - * @model - * @generated - * @ordered - */ - public static final int PACKAGE_VALUE = 3; - - /** - * An array of all the 'Visibility' enumerators. - * - * - * @generated - */ - private static final Visibility[] VALUES_ARRAY = new Visibility[] { PUBLIC, PRIVATE, PROTECTED, PACKAGE, }; - - /** - * A public read-only list of all the 'Visibility' enumerators. - * - * - * @generated - */ - public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); - - /** - * Returns the 'Visibility' literal with the specified literal value. - * - * - * @param literal the literal. - * @return the matching enumerator or null. - * @generated - */ - public static Visibility get(String literal) { - for (int i = 0; i < VALUES_ARRAY.length; ++i) { - Visibility result = VALUES_ARRAY[i]; - if (result.toString().equals(literal)) { - return result; - } - } - return null; - } - - /** - * Returns the 'Visibility' literal with the specified name. - * - * - * @param name the name. - * @return the matching enumerator or null. - * @generated - */ - public static Visibility getByName(String name) { - for (int i = 0; i < VALUES_ARRAY.length; ++i) { - Visibility result = VALUES_ARRAY[i]; - if (result.getName().equals(name)) { - return result; - } - } - return null; - } - - /** - * Returns the 'Visibility' literal with the specified integer value. - * - * - * @param value the integer value. - * @return the matching enumerator or null. - * @generated - */ - public static Visibility get(int value) { - switch (value) { - case PUBLIC_VALUE: - return PUBLIC; - case PRIVATE_VALUE: - return PRIVATE; - case PROTECTED_VALUE: - return PROTECTED; - case PACKAGE_VALUE: - return PACKAGE; - } - return null; - } - - /** - * - * - * @generated - */ - private final int value; - - /** - * - * - * @generated - */ - private final String name; - - /** - * - * - * @generated - */ - private final String literal; - - /** - * Only this class can construct instances. - * - * - * @generated - */ - private Visibility(int value, String name, String literal) { - this.value = value; - this.name = name; - this.literal = literal; - } - - /** - * - * - * @generated - */ - @Override - public int getValue() { - return value; - } - - /** - * - * - * @generated - */ - @Override - public String getName() { - return name; - } - - /** - * - * - * @generated - */ - @Override - public String getLiteral() { - return literal; - } - - /** - * Returns the literal value of the enumerator, which is its string representation. - * - * - * @generated - */ - @Override - public String toString() { - return literal; - } - -} //Visibility diff --git a/de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/impl/ParameterImpl.java b/de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/impl/ParameterImpl.java deleted file mode 100644 index 236e85547..000000000 --- a/de.tu_bs.cs.isf.cbc.cbcclass.model/src-gen/de/tu_bs/cs/isf/cbc/cbcclass/model/cbcclass/impl/ParameterImpl.java +++ /dev/null @@ -1,222 +0,0 @@ -/** - */ -package de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.impl; - -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.CbcclassPackage; -import de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.Parameter; - -import org.eclipse.emf.common.notify.Notification; - -import org.eclipse.emf.ecore.EClass; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; - -/** - * - * An implementation of the model object 'Parameter'. - * - *

- * The following features are implemented: - *

- *
    - *
  • {@link de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.impl.ParameterImpl#getType Type}
  • - *
  • {@link de.tu_bs.cs.isf.cbc.cbcclass.model.cbcclass.impl.ParameterImpl#getName Name}
  • - *
- * - * @generated - */ -public class ParameterImpl extends MinimalEObjectImpl.Container implements Parameter { - /** - * The default value of the '{@link #getType() Type}' attribute. - * - * - * @see #getType() - * @generated - * @ordered - */ - protected static final String TYPE_EDEFAULT = null; - - /** - * The cached value of the '{@link #getType() Type}' attribute. - * - * - * @see #getType() - * @generated - * @ordered - */ - protected String type = TYPE_EDEFAULT; - - /** - * The default value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected static final String NAME_EDEFAULT = ""; - - /** - * The cached value of the '{@link #getName() Name}' attribute. - * - * - * @see #getName() - * @generated - * @ordered - */ - protected String name = NAME_EDEFAULT; - - /** - * - * - * @generated - */ - protected ParameterImpl() { - super(); - } - - /** - * - * - * @generated - */ - @Override - protected EClass eStaticClass() { - return CbcclassPackage.Literals.PARAMETER; - } - - /** - * - * - * @generated - */ - @Override - public String getType() { - return type; - } - - /** - * - * - * @generated - */ - @Override - public void setType(String newType) { - String oldType = type; - type = newType; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, CbcclassPackage.PARAMETER__TYPE, oldType, type)); - } - - /** - * - * - * @generated - */ - @Override - public String getName() { - return name; - } - - /** - * - * - * @generated - */ - @Override - public void setName(String newName) { - String oldName = name; - name = newName; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, CbcclassPackage.PARAMETER__NAME, oldName, name)); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) { - switch (featureID) { - case CbcclassPackage.PARAMETER__TYPE: - return getType(); - case CbcclassPackage.PARAMETER__NAME: - return getName(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) { - switch (featureID) { - case CbcclassPackage.PARAMETER__TYPE: - setType((String) newValue); - return; - case CbcclassPackage.PARAMETER__NAME: - setName((String) newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) { - switch (featureID) { - case CbcclassPackage.PARAMETER__TYPE: - setType(TYPE_EDEFAULT); - return; - case CbcclassPackage.PARAMETER__NAME: - setName(NAME_EDEFAULT); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) { - switch (featureID) { - case CbcclassPackage.PARAMETER__TYPE: - return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type); - case CbcclassPackage.PARAMETER__NAME: - return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); - } - return super.eIsSet(featureID); - } - - /** - * - * - * @generated - */ - @Override - public String toString() { - if (eIsProxy()) - return super.toString(); - - StringBuilder result = new StringBuilder(super.toString()); - result.append(" (type: "); - result.append(type); - result.append(", name: "); - result.append(name); - result.append(')'); - return result.toString(); - } - -} //ParameterImpl diff --git a/de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/DataCollector.java b/de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/DataCollector.java deleted file mode 100644 index 321f43dd4..000000000 --- a/de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/DataCollector.java +++ /dev/null @@ -1,153 +0,0 @@ -package de.tu_bs.cs.isf.cbc.statistics; - -import java.io.File; -import java.nio.charset.StandardCharsets; -import java.util.Date; - -import javax.swing.JOptionPane; - -import com.google.common.hash.Hashing; - -import de.tu_bs.cs.isf.cbc.cbcmodel.AbstractStatement; -import de.tu_bs.cs.isf.cbc.cbcmodel.CbCFormula; -import de.tu_bs.cs.isf.cbc.util.Console; -import de.uka.ilkd.key.proof.Proof; -import de.uka.ilkd.key.proof.Statistics; - -public class DataCollector { - - // TODO: data is constantly saved -> implement something to clean database - // either: - // automatically (e.g. after a certain time) or - // manually (e.g. by clicking clean statistics within the context menu) - - public void collectCorcStatistics(Proof proof, CbCFormula formula, AbstractStatement statement, String problem, - String uri) { - // TODO: if formula is null -> only a KeY file is proven: no diagram in direct - // relation - if (formula != null) { - Statistics keyStats = proof.getStatistics(); - String hashValue = getHashFromProblem(problem); - - StatisticsEntry corcStatsEntry = statisticsFactory.eINSTANCE.createStatisticsEntry(); - StatisticsData corcStatsData = statisticsFactory.eINSTANCE.createStatisticsData(); - CorcKeyMapping mapping = statisticsFactory.eINSTANCE.createCorcKeyMapping(); - - // set statistics to this entry - corcStatsEntry.setData(corcStatsData); - corcStatsEntry.setMapping(mapping); - - -// String path = getWorkspaceRelatedPath(proof.getProofFile().getAbsolutePath()); - - // set KeY file path mapping to this entry - mapping.setKeyFilePath(proof.getProofFile().getAbsolutePath()); - // look up diagram name and set to mapping - mapping.setCorcDiagramName(getFolderName(proof.getProofFile().getAbsolutePath().toString())); - // set CorC elements mapping to this entry - mapping.setCorcElementFormula(formula); - mapping.setCorcElementStatement(statement); - // for old models because id for abstract statements in cbcmodel is new - if (statement.getId() == null || statement.getId().isEmpty()) { - throw new RuntimeException( - "Error: Statistics Data Collector - Please right click on the Diagram within the project explorer to add IDs."); - } else { - mapping.setCorcElementId(statement.getId()); - } - mapping.setCorcDiagramPath(uri); - // set KeY file hash value - mapping.setKeyProofProblemHashValue(hashValue); - - // collecting statistic data for this entry TODO: more - corcStatsData.setNumberOfNodes(keyStats.nodes); - corcStatsData.setAutoModeTimeInMillis(keyStats.autoModeTimeInMillis); - corcStatsData.setTimeInMillis(keyStats.timeInMillis); - corcStatsData.setTimePerStepInMillis(keyStats.timePerStepInMillis); - corcStatsData.setNumberOfBranches(keyStats.branches); - corcStatsData.setTotalRuleApps(keyStats.totalRuleApps); - Date date = new Date(); - corcStatsData.setTimestamp(date); - corcStatsData.setIsProven(proof.closed()); - - StatisticsDatabase.instance.saveToDatabase(corcStatsEntry); - } else { - System.out.println("Directly proven a KeY file. Statistics not collected!"); - } - } - - private String getFolderName(String keyFilePath) { - - int indexLastSeperatorEntry = keyFilePath.lastIndexOf(File.separator); - keyFilePath = keyFilePath.substring(0, indexLastSeperatorEntry); - - if (keyFilePath.contains(File.separator + "features" + File.separator)) { - // remove config folder for variational projects - indexLastSeperatorEntry = keyFilePath.lastIndexOf(File.separator); - keyFilePath = keyFilePath.substring(0, indexLastSeperatorEntry); - } - // adding 6 because of prove string - indexLastSeperatorEntry = keyFilePath.lastIndexOf(File.separator) + 6; - String diagramFolder = keyFilePath.substring(indexLastSeperatorEntry, keyFilePath.length()); - - return diagramFolder; - } - -// private String getWorkspaceRelatedPath(String absolutePath) { -// -// // D:\Uni\Bachelorarbeit\Bachelorarbeit_Git\CorC\BankAccountCorC\src\Account\provebankAccountUndoUpdate\SelectionStatement1.key -// -// IPath workspacePath = Platform.getLocation(); -// -// IPath path = new Path(absolutePath); -// -//// path. -// // this will give workspace related path and not project related :( -// try { -// File currentDirFile = new File("."); -// String helper = currentDirFile.getAbsolutePath(); -// String currentDir = helper.substring(0, helper.length() - currentDirFile.getCanonicalPath().length()); -// } catch (IOException e) { -// // TODO Auto-generated catch block -// e.printStackTrace(); -// } -// -// return null; -// } - - private String getHashFromProblem(String problem) { - -// Path keyFilePath = Path.of(proof.getProofFile().getAbsolutePath()); -// String fileString = ""; -// try { -// fileString = Files.readString(keyFilePath); -// } catch (IOException e) { -// System.out.println("read proof file failed - DataCollector Error: " + e.getMessage()); -// e.printStackTrace(); -// return "-1"; -// } - -// int startProblem = fileString.indexOf("\\problem"); -// -// // TODO: check if file string is empty -// String problem = fileString.substring(startProblem, fileString.length() - 1); -// int firstOpeningBracket = problem.indexOf("{"); -// int endOfProblem = problem.indexOf("\\proof"); -// problem = problem.substring(firstOpeningBracket + 1, endOfProblem); -// -// problem = problem.substring(0, problem.lastIndexOf("}")); -// problem = problem.trim(); - - // TODO: throw exception if problem is null - String hash = Hashing.sha256().hashString(problem, StandardCharsets.UTF_8).toString(); - - return hash; - } - - public static boolean checkForId(AbstractStatement statement) { - if (statement.getId() == null || statement.getId().isEmpty()) { - JOptionPane.showMessageDialog(null, "Error: Statistical data collection failed. Please add Ids by right click on diagram in project explorer. Proof not executed."); - return false; - } - return true; - } -} diff --git a/de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/RHelper.java b/de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/RHelper.java deleted file mode 100644 index 9a1a92dbc..000000000 --- a/de.tu_bs.cs.isf.cbc.statistics/src/de/tu_bs/cs/isf/cbc/statistics/RHelper.java +++ /dev/null @@ -1,158 +0,0 @@ -package de.tu_bs.cs.isf.cbc.statistics; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; -import java.util.LinkedList; -import java.util.List; - -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Platform; - -public class RHelper { - - private static final String PLUGIN_ID ="de.tu_bs.cs.isf.cbc.statistics"; - - - - public String generatePDF(String fileName, List entries) { - String rootLocation = getAbsoluteFileRootLocation(); - String pathToPDF = rootLocation + fileName + ".pdf"; - String header = "pdf(file=\""+ pathToPDF.replaceAll("\\\\", "/") +"\")\r\n"; - - if(!generate(header, rootLocation, fileName, entries)) - return null; - else - return pathToPDF; - } - - public String generatePNG(String fileName, List entries) { - String rootLocation = getAbsoluteFileRootLocation(); - String pathToPNG = rootLocation + fileName + ".png"; - String header = "png(filename=\""+ pathToPNG.replaceAll("\\\\", "/") +"\")\r\n"; - - if(!generate(header, rootLocation, fileName, entries)) - return null; - else - return pathToPNG; - } - - private boolean generate(String header, String rootLocation, String fileName, List entries) { - File directory = new File(rootLocation); - if (! directory.exists()){ - directory.mkdir(); - } - - String code = header + generateRCodeBody(entries); - - String rFileLocation = rootLocation + fileName + ".R"; - String errorFileLocation = rootLocation + fileName + "-errorlog.txt"; - - try { - writeToFile(rFileLocation, code, true); - } catch (IOException e1) { - e1.printStackTrace(); - return false; // if this does not work ... well - } - - // TODO: alter process information for builder -> RScript is in PATH - ProcessBuilder rProcessBuilder = new ProcessBuilder("Rscript", rFileLocation); - try { - Process rProcess = rProcessBuilder.start(); - int returnCode = rProcess.waitFor(); - - StringBuilder textBuilder = new StringBuilder(); - try (Reader reader = new BufferedReader(new InputStreamReader(rProcess.getErrorStream(), - Charset.forName(StandardCharsets.UTF_8.name())))) { - int c = 0; - while ((c = reader.read()) != -1) { - textBuilder.append((char) c); - } - } - writeToFile(errorFileLocation, textBuilder.toString(), true); - - if(returnCode == 0) - return true; - else - return false; - } catch (Exception e) { - String errorOutput = "Rscript not found. Please install and make sure to add to PATH variable.\n" - + " -> Eclipse may have to be restarted."; - System.out.println(errorOutput); - de.tu_bs.cs.isf.cbc.util.Console.println(errorOutput); - e.printStackTrace(); - return false; - } - } - - - - private void writeToFile(String fileLocation, String content, boolean overwrite) throws IOException { - File rFile = new File(fileLocation); - if (!rFile.createNewFile()) { - if (!overwrite) - return; - } - FileWriter myWriter = new FileWriter(rFile); - myWriter.write(content); - myWriter.close(); - } - - - - private String getAbsoluteFileRootLocation() { - IPath pluginStateFolderPath = Platform.getStateLocation(Platform.getBundle(PLUGIN_ID)); - File pluginStateFolder = pluginStateFolderPath.toFile(); - - String folderName = "generatedDiagrams"; - return pluginStateFolder.getAbsolutePath() + File.separator + folderName + File.separator; - } - - private String generateRCodeBody(List entries) { - List diagramNames = new LinkedList(); - for (StatisticsEntry entry : entries) { - String entryDiagramName = entry.getMapping().getCorcDiagramName(); - boolean alreadyInDiagram = false; - for (String name : diagramNames) { - if (name.equals(entryDiagramName)) { - alreadyInDiagram = true; - } - } - if (!alreadyInDiagram) { - diagramNames.add(entryDiagramName); - } - } - - String xAxis = "diagram <- c("; - String yAxis = "time <- c(" ; - - // filling the axes - for (String diagramName : diagramNames) { - float totalTime = 0; - for (StatisticsEntry entry : entries) { - if (entry.getMapping().getCorcDiagramName().equals(diagramName)) { - totalTime = totalTime + entry.getData().getAutoModeTimeInMillis(); - } - } - xAxis = xAxis + "\"" + diagramName +"\", "; - yAxis = yAxis + totalTime + ", "; - } - xAxis = xAxis.substring(0, xAxis.length()-2) + ")\r\n"; - yAxis = yAxis.substring(0, yAxis.length()-2) + ")\r\n"; - - String margins = "linch <- max(strwidth(diagram, \"inch\")+0.4, na.rm = TRUE)\r\n" - + "par(mai=c(linch,1.02,0.82,0.42))\r\n"; - -// String plotCommand = "mean(diagram)\r\nmean(time)\r\nplot(diagram,time)"; -// String plotCommand = "barplot(time,xlab = \"Diagrams\", ylab = \"Auto Mode Time in ms\", names.arg=diagram, las=2)\r\n"; - String plotCommand = "barplot(time, ylab = \"Auto Mode Time in ms\", names.arg=diagram, las=2)\r\n"; - - return xAxis + yAxis + margins + plotCommand; - } - -}