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 04741075c..000000000
Binary files a/de.tu-bs.cs.isf.cbcclass.tool/bin/de/tu_bs/cs/isf/cbcclass/tool/diagram/CbCClassImageProvider.class and /dev/null differ
diff --git a/de.tu-bs.cs.isf.cbcclass.tool/bin/model/CbcClassUtil.class b/de.tu-bs.cs.isf.cbcclass.tool/bin/model/CbcClassUtil.class
deleted file mode 100644
index bc15dc4f2..000000000
Binary files a/de.tu-bs.cs.isf.cbcclass.tool/bin/model/CbcClassUtil.class and /dev/null differ
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