aboutsummaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-02-01 16:03:30 -0500
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-02-01 16:03:30 -0500
commit717916e99b2c8e7965fb31f4448b4336d8c2f19a (patch)
tree074c77b8465f1e47e7a28af2d95f79c1f5abaf86 /Tests
parentFAM MM transformation works (diff)
downloadVIATRA-Generator-717916e99b2c8e7965fb31f4448b4336d8c2f19a.tar.gz
VIATRA-Generator-717916e99b2c8e7965fb31f4448b4336d8c2f19a.tar.zst
VIATRA-Generator-717916e99b2c8e7965fb31f4448b4336d8c2f19a.zip
Fix FAM Test. Begin Grammar Fix.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF9
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore61
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql12
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi12
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi12
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp37
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem882
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp55
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp67
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem39
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend105
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend33
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend33
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend89
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend34
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend (renamed from Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend)0
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend5
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend25
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin0 -> 6811 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin0 -> 4111 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin0 -> 4124 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin0 -> 7276 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin0 -> 3643 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.gitignore6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java116
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java38
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java38
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java127
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java10
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4870 -> 4870 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6307 -> 6292 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java (renamed from Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java)0
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java26
40 files changed, 1855 insertions, 33 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
index a5999e6d..fedee0e4 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
1Manifest-Version: 1.0 1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2 2Bundle-ManifestVersion: 2
3Bundle-Name: Test 3Bundle-Name: Test
4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test 4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true
5Bundle-Version: 1.0.0.qualifier 5Bundle-Version: 1.0.0.qualifier
6Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test 6Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test
7Bundle-RequiredExecutionEnvironment: JavaSE-1.8 7Bundle-RequiredExecutionEnvironment: JavaSE-1.8
@@ -22,5 +22,10 @@ Require-Bundle: com.google.guava,
22 hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0", 22 hu.bme.mit.inf.dslreasoner.logic2ecore;bundle-version="1.0.0",
23 hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0", 23 hu.bme.mit.inf.dslreasoner.visualisation;bundle-version="1.0.0",
24 ModelGenExampleFAM_plugin;bundle-version="1.0.0", 24 ModelGenExampleFAM_plugin;bundle-version="1.0.0",
25 ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1" 25 ModelGenExampleFAM_plugin.validation;bundle-version="0.0.1",
26 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph;bundle-version="1.0.0",
27 hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.validation;bundle-version="0.0.1",
28 org.eclipse.viatra.query.runtime;bundle-version="2.1.0",
29 org.eclipse.collections;bundle-version="9.2.0",
30 hu.bme.mit.inf.dslreasoner.application.FAMTest;bundle-version="1.0.0"
26 31
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore
new file mode 100644
index 00000000..68943e55
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamMetamodel.ecore
@@ -0,0 +1,61 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="functionalarchitecture" nsURI="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4 nsPrefix="functionalarchitecture">
5 <eClassifiers xsi:type="ecore:EClass" name="FunctionalElement" abstract="true">
6 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface"
7 containment="true" eOpposite="#//FunctionalInterface/element"/>
8 <eStructuralFeatures xsi:type="ecore:EReference" name="model" lowerBound="1" eType="#//FunctionalArchitectureModel"
9 volatile="true" transient="true" derived="true">
10 <eAnnotations source="org.eclipse.viatra.query.querybasedfeature">
11 <details key="patternFQN" value="hu.bme.mit.inf.dslreasoner.domains.fam.model"/>
12 </eAnnotations>
13 </eStructuralFeatures>
14 <eStructuralFeatures xsi:type="ecore:EReference" name="parent" eType="#//Function"
15 eOpposite="#//Function/subElements"/>
16 </eClassifiers>
17 <eClassifiers xsi:type="ecore:EClass" name="FunctionalArchitectureModel">
18 <eStructuralFeatures xsi:type="ecore:EReference" name="rootElements" upperBound="-1"
19 eType="#//FunctionalElement" containment="true"/>
20 </eClassifiers>
21 <eClassifiers xsi:type="ecore:EClass" name="Function" eSuperTypes="#//FunctionalElement">
22 <eStructuralFeatures xsi:type="ecore:EReference" name="subElements" upperBound="-1"
23 eType="#//FunctionalElement" containment="true" eOpposite="#//FunctionalElement/parent"/>
24 <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="#//FunctionType"/>
25 </eClassifiers>
26 <eClassifiers xsi:type="ecore:EClass" name="FAMTerminator">
27 <eStructuralFeatures xsi:type="ecore:EReference" name="data" eType="#//FunctionalData"
28 eOpposite="#//FunctionalData/terminator"/>
29 </eClassifiers>
30 <eClassifiers xsi:type="ecore:EClass" name="InformationLink">
31 <eStructuralFeatures xsi:type="ecore:EReference" name="from" eType="#//FunctionalOutput"
32 eOpposite="#//FunctionalOutput/outgoingLinks"/>
33 <eStructuralFeatures xsi:type="ecore:EReference" name="to" lowerBound="1" eType="#//FunctionalInput"
34 eOpposite="#//FunctionalInput/IncomingLinks"/>
35 </eClassifiers>
36 <eClassifiers xsi:type="ecore:EClass" name="FunctionalInterface">
37 <eStructuralFeatures xsi:type="ecore:EReference" name="data" upperBound="-1" eType="#//FunctionalData"
38 containment="true" eOpposite="#//FunctionalData/interface"/>
39 <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="#//FunctionalElement"
40 eOpposite="#//FunctionalElement/interface"/>
41 </eClassifiers>
42 <eClassifiers xsi:type="ecore:EClass" name="FunctionalInput" eSuperTypes="#//FunctionalData">
43 <eStructuralFeatures xsi:type="ecore:EReference" name="IncomingLinks" upperBound="-1"
44 eType="#//InformationLink" eOpposite="#//InformationLink/to"/>
45 </eClassifiers>
46 <eClassifiers xsi:type="ecore:EClass" name="FunctionalOutput" eSuperTypes="#//FunctionalData">
47 <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingLinks" upperBound="-1"
48 eType="#//InformationLink" containment="true" eOpposite="#//InformationLink/from"/>
49 </eClassifiers>
50 <eClassifiers xsi:type="ecore:EClass" name="FunctionalData" abstract="true">
51 <eStructuralFeatures xsi:type="ecore:EReference" name="terminator" eType="#//FAMTerminator"
52 containment="true" eOpposite="#//FAMTerminator/data"/>
53 <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//FunctionalInterface"
54 eOpposite="#//FunctionalInterface/data"/>
55 </eClassifiers>
56 <eClassifiers xsi:type="ecore:EEnum" name="FunctionType">
57 <eLiterals name="Root"/>
58 <eLiterals name="Intermediate" value="1"/>
59 <eLiterals name="Leaf" value="2"/>
60 </eClassifiers>
61</ecore:EPackage>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql
new file mode 100644
index 00000000..013d0419
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM/FamPatterns.vql
@@ -0,0 +1,12 @@
1package hu.bme.mit.inf.dslreasoner.domains.fam
2
3import epackage "http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4
5@Constraint(message="terminatorAndInformation", severity="error", key={T})
6pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
7 FunctionalOutput.outgoingLinks(Out,I);
8 FunctionalOutput.terminator(Out,T);
9} or {
10 InformationLink.to(I,In);
11 FunctionalInput.terminator(In,T);
12} \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi
new file mode 100644
index 00000000..8500678c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FamInstance.xmi
@@ -0,0 +1,12 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<functionalarchitecture:FunctionalArchitectureModel
3 xmi:version="2.0"
4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
7 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam ../../ModelGenExampleFAM_plugin/model/FamMetamodel.ecore">
8 <rootElements
9 xsi:type="functionalarchitecture:Function"/>
10 <rootElements
11 xsi:type="functionalarchitecture:Function"/>
12</functionalarchitecture:FunctionalArchitectureModel>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
index 59935a2c..61256334 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
@@ -1,4 +1,10 @@
1<?xml version="1.0" encoding="UTF-8"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<functionalarchitecture:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" 2<functionalarchitecture:FunctionalArchitectureModel
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam" 3 xmi:version="2.0"
4 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore"/> 4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
6 xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
7 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam ../../ModelGenExampleFAM_plugin/model/FamMetamodel.ecore">
8 <rootElements
9 xsi:type="functionalarchitecture:Function"/>
10</functionalarchitecture:FunctionalArchitectureModel>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp
new file mode 100644
index 00000000..301c2736
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/DslTest/vampireProblem.tptp
@@ -0,0 +1,37 @@
1% This is an initial Test Comment
2fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( type_FunctionType_enum ( A ) <=> ( A = "aRoot literal FunctionType" | ( A = "aIntermediate literal FunctionType" | A = "aLeaf literal FunctionType" ) ) ) ) .
3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( type_FunctionalOutput_class ( A ) & ~ type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) | ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalInput_class ( A ) & ( ~ type_FunctionType_enum ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_FunctionalInterface_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & type_FunctionalArchitectureModel_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
4fof ( compliance_interface_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) .
5fof ( compliance_model_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_model_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalArchitectureModel_class ( Var_1 ) ) ) ) .
6fof ( compliance_parent_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_parent_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_Function_class ( Var_1 ) ) ) ) .
7fof ( compliance_rootElements_reference_FunctionalArchitectureModel , axiom , ! [ Var_0 , Var_1 ] : ( rel_rootElements_reference_FunctionalArchitectureModel ( Var_0 , Var_1 ) => ( type_FunctionalArchitectureModel_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) .
8fof ( compliance_subElements_reference_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_subElements_reference_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) .
9fof ( compliance_data_reference_FAMTerminator , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FAMTerminator ( Var_0 , Var_1 ) => ( type_FAMTerminator_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) .
10fof ( compliance_from_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_from_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalOutput_class ( Var_1 ) ) ) ) .
11fof ( compliance_to_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_to_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalInput_class ( Var_1 ) ) ) ) .
12fof ( compliance_data_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) .
13fof ( compliance_element_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_element_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) .
14fof ( compliance_IncomingLinks_reference_FunctionalInput , axiom , ! [ Var_0 , Var_1 ] : ( rel_IncomingLinks_reference_FunctionalInput ( Var_0 , Var_1 ) => ( type_FunctionalInput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) .
15fof ( compliance_outgoingLinks_reference_FunctionalOutput , axiom , ! [ Var_0 , Var_1 ] : ( rel_outgoingLinks_reference_FunctionalOutput ( Var_0 , Var_1 ) => ( type_FunctionalOutput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) .
16fof ( compliance_terminator_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_terminator_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FAMTerminator_class ( Var_1 ) ) ) ) .
17fof ( compliance_interface_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) .
18fof ( compliance_type_attribute_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_type_attribute_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionType_enum ( Var_1 ) ) ) ) .
19fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
20fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ Var_src ] : ( type_FunctionalElement_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) ) ) ) .
21fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & type_FunctionalArchitectureModel_class ( Var_trg_2 ) ) ) => ( ( rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
22fof ( upperMultiplicity_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_Function_class ( Var_trg_1 ) & type_Function_class ( Var_trg_2 ) ) ) => ( ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_parent_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
23fof ( upperMultiplicity_data_FAMTerminator , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FAMTerminator_class ( Var_src ) & ( type_FunctionalData_class ( Var_trg_1 ) & type_FunctionalData_class ( Var_trg_2 ) ) ) => ( ( rel_data_reference_FAMTerminator ( Var_src , Var_trg_1 ) & rel_data_reference_FAMTerminator ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
24fof ( upperMultiplicity_from_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalOutput_class ( Var_trg_1 ) & type_FunctionalOutput_class ( Var_trg_2 ) ) ) => ( ( rel_from_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_from_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
25fof ( lowerMultiplicity_to_InformationLink , axiom , ! [ Var_src ] : ( type_InformationLink_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalInput_class ( Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) ) ) ) .
26fof ( upperMultiplicity_to_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalInput_class ( Var_trg_1 ) & type_FunctionalInput_class ( Var_trg_2 ) ) ) => ( ( rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
27fof ( upperMultiplicity_element_FunctionalInterface , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalInterface_class ( Var_src ) & ( type_FunctionalElement_class ( Var_trg_1 ) & type_FunctionalElement_class ( Var_trg_2 ) ) ) => ( ( rel_element_reference_FunctionalInterface ( Var_src , Var_trg_1 ) & rel_element_reference_FunctionalInterface ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
28fof ( upperMultiplicity_terminator_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FAMTerminator_class ( Var_trg_1 ) & type_FAMTerminator_class ( Var_trg_2 ) ) ) => ( ( rel_terminator_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_terminator_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
29fof ( upperMultiplicity_interface_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
30fof ( oppositeReference_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_FunctionalInterface_class ( Var_trg ) ) => ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_element_reference_FunctionalInterface ( Var_trg , Var_src ) ) ) ) .
31fof ( oppositeReference_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_Function_class ( Var_trg ) ) => ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_subElements_reference_Function ( Var_trg , Var_src ) ) ) ) .
32fof ( oppositeReference_data_FAMTerminator , axiom , ! [ Var_src , Var_trg ] : ( ( type_FAMTerminator_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FAMTerminator ( Var_src , Var_trg ) <=> rel_terminator_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
33fof ( oppositeReference_from_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalOutput_class ( Var_trg ) ) => ( rel_from_reference_InformationLink ( Var_src , Var_trg ) <=> rel_outgoingLinks_reference_FunctionalOutput ( Var_trg , Var_src ) ) ) ) .
34fof ( oppositeReference_to_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalInput_class ( Var_trg ) ) => ( rel_to_reference_InformationLink ( Var_src , Var_trg ) <=> rel_IncomingLinks_reference_FunctionalInput ( Var_trg , Var_src ) ) ) ) .
35fof ( oppositeReference_data_FunctionalInterface , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalInterface_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FunctionalInterface ( Var_src , Var_trg ) <=> rel_interface_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
36fof ( lowerMultiplicity_type_Function , axiom , ! [ Var_src ] : ( type_Function_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionType_enum ( Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_1 ) ) ) ) .
37fof ( upperMultiplicity_type_Function , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Function_class ( Var_src ) & ( type_FunctionType_enum ( Var_trg_1 ) & type_FunctionType_enum ( Var_trg_2 ) ) ) => ( ( rel_type_attribute_Function ( Var_src , Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
new file mode 100644
index 00000000..5792ceed
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
@@ -0,0 +1,882 @@
1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation">
3 <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class" subtypes="//@types.10 //@types.11" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/>
6 <types xsi:type="language_1:TypeDeclaration" name="FAMTerminator class"/>
7 <types xsi:type="language_1:TypeDeclaration" name="InformationLink class"/>
8 <types xsi:type="language_1:TypeDeclaration" name="FunctionalInterface class"/>
9 <types xsi:type="language_1:TypeDeclaration" name="FunctionalInput class" supertypes="//@types.8"/>
10 <types xsi:type="language_1:TypeDeclaration" name="FunctionalOutput class" supertypes="//@types.8"/>
11 <types xsi:type="language_1:TypeDeclaration" name="FunctionalData class" subtypes="//@types.6 //@types.7" isAbstract="true"/>
12 <types xsi:type="language_1:TypeDefinition" name="FunctionType enum" elements="//@elements.0 //@elements.1 //@elements.2"/>
13 <types xsi:type="language_1:TypeDefinition" name="FunctionalArchitectureModel class DefinedPart" supertypes="//@types.1" elements="//@elements.3"/>
14 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class UndefinedPart" supertypes="//@types.1"/>
15 <assertions name="upperMultiplicity interface FunctionalElement" annotations="//@annotations.0">
16 <value xsi:type="language_1:Forall">
17 <quantifiedVariables name="src">
18 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
19 </quantifiedVariables>
20 <quantifiedVariables name="trg 1">
21 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
22 </quantifiedVariables>
23 <quantifiedVariables name="trg 2">
24 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
25 </quantifiedVariables>
26 <expression xsi:type="language_1:Impl">
27 <leftOperand xsi:type="language_1:And">
28 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
29 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
30 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/>
31 </operands>
32 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
33 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
34 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
35 </operands>
36 </leftOperand>
37 <rightOperand xsi:type="language_1:Not">
38 <operand xsi:type="language_1:Distinct">
39 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/>
40 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
41 </operand>
42 </rightOperand>
43 </expression>
44 </value>
45 </assertions>
46 <assertions name="lowerMultiplicity model FunctionalElement" annotations="//@annotations.1">
47 <value xsi:type="language_1:Forall">
48 <quantifiedVariables name="src">
49 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
50 </quantifiedVariables>
51 <expression xsi:type="language_1:Exists">
52 <quantifiedVariables name="trg 1">
53 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
54 </quantifiedVariables>
55 <expression xsi:type="language_1:And">
56 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
57 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
58 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@expression/@quantifiedVariables.0"/>
59 </operands>
60 </expression>
61 </expression>
62 </value>
63 </assertions>
64 <assertions name="upperMultiplicity model FunctionalElement" annotations="//@annotations.2">
65 <value xsi:type="language_1:Forall">
66 <quantifiedVariables name="src">
67 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
68 </quantifiedVariables>
69 <quantifiedVariables name="trg 1">
70 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
71 </quantifiedVariables>
72 <quantifiedVariables name="trg 2">
73 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
74 </quantifiedVariables>
75 <expression xsi:type="language_1:Impl">
76 <leftOperand xsi:type="language_1:And">
77 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
78 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
79 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
80 </operands>
81 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
82 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
83 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
84 </operands>
85 </leftOperand>
86 <rightOperand xsi:type="language_1:Not">
87 <operand xsi:type="language_1:Distinct">
88 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
89 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
90 </operand>
91 </rightOperand>
92 </expression>
93 </value>
94 </assertions>
95 <assertions name="upperMultiplicity parent FunctionalElement" annotations="//@annotations.3">
96 <value xsi:type="language_1:Forall">
97 <quantifiedVariables name="src">
98 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
99 </quantifiedVariables>
100 <quantifiedVariables name="trg 1">
101 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
102 </quantifiedVariables>
103 <quantifiedVariables name="trg 2">
104 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
105 </quantifiedVariables>
106 <expression xsi:type="language_1:Impl">
107 <leftOperand xsi:type="language_1:And">
108 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
109 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
110 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
111 </operands>
112 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
113 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
114 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
115 </operands>
116 </leftOperand>
117 <rightOperand xsi:type="language_1:Not">
118 <operand xsi:type="language_1:Distinct">
119 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
120 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
121 </operand>
122 </rightOperand>
123 </expression>
124 </value>
125 </assertions>
126 <assertions name="upperMultiplicity data FAMTerminator" annotations="//@annotations.4">
127 <value xsi:type="language_1:Forall">
128 <quantifiedVariables name="src">
129 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
130 </quantifiedVariables>
131 <quantifiedVariables name="trg 1">
132 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
133 </quantifiedVariables>
134 <quantifiedVariables name="trg 2">
135 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
136 </quantifiedVariables>
137 <expression xsi:type="language_1:Impl">
138 <leftOperand xsi:type="language_1:And">
139 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
140 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
141 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
142 </operands>
143 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
144 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
145 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
146 </operands>
147 </leftOperand>
148 <rightOperand xsi:type="language_1:Not">
149 <operand xsi:type="language_1:Distinct">
150 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
151 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
152 </operand>
153 </rightOperand>
154 </expression>
155 </value>
156 </assertions>
157 <assertions name="upperMultiplicity from InformationLink" annotations="//@annotations.5">
158 <value xsi:type="language_1:Forall">
159 <quantifiedVariables name="src">
160 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
161 </quantifiedVariables>
162 <quantifiedVariables name="trg 1">
163 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
164 </quantifiedVariables>
165 <quantifiedVariables name="trg 2">
166 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
167 </quantifiedVariables>
168 <expression xsi:type="language_1:Impl">
169 <leftOperand xsi:type="language_1:And">
170 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
171 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
172 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
173 </operands>
174 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
175 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
176 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
177 </operands>
178 </leftOperand>
179 <rightOperand xsi:type="language_1:Not">
180 <operand xsi:type="language_1:Distinct">
181 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
182 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
183 </operand>
184 </rightOperand>
185 </expression>
186 </value>
187 </assertions>
188 <assertions name="lowerMultiplicity to InformationLink" annotations="//@annotations.6">
189 <value xsi:type="language_1:Forall">
190 <quantifiedVariables name="src">
191 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
192 </quantifiedVariables>
193 <expression xsi:type="language_1:Exists">
194 <quantifiedVariables name="trg 1">
195 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
196 </quantifiedVariables>
197 <expression xsi:type="language_1:And">
198 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
199 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
200 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@expression/@quantifiedVariables.0"/>
201 </operands>
202 </expression>
203 </expression>
204 </value>
205 </assertions>
206 <assertions name="upperMultiplicity to InformationLink" annotations="//@annotations.7">
207 <value xsi:type="language_1:Forall">
208 <quantifiedVariables name="src">
209 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
210 </quantifiedVariables>
211 <quantifiedVariables name="trg 1">
212 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
213 </quantifiedVariables>
214 <quantifiedVariables name="trg 2">
215 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
216 </quantifiedVariables>
217 <expression xsi:type="language_1:Impl">
218 <leftOperand xsi:type="language_1:And">
219 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
220 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
221 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
222 </operands>
223 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
224 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
225 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
226 </operands>
227 </leftOperand>
228 <rightOperand xsi:type="language_1:Not">
229 <operand xsi:type="language_1:Distinct">
230 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
231 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
232 </operand>
233 </rightOperand>
234 </expression>
235 </value>
236 </assertions>
237 <assertions name="upperMultiplicity element FunctionalInterface" annotations="//@annotations.8">
238 <value xsi:type="language_1:Forall">
239 <quantifiedVariables name="src">
240 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
241 </quantifiedVariables>
242 <quantifiedVariables name="trg 1">
243 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
244 </quantifiedVariables>
245 <quantifiedVariables name="trg 2">
246 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
247 </quantifiedVariables>
248 <expression xsi:type="language_1:Impl">
249 <leftOperand xsi:type="language_1:And">
250 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
251 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
252 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
253 </operands>
254 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
255 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
256 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
257 </operands>
258 </leftOperand>
259 <rightOperand xsi:type="language_1:Not">
260 <operand xsi:type="language_1:Distinct">
261 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
262 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
263 </operand>
264 </rightOperand>
265 </expression>
266 </value>
267 </assertions>
268 <assertions name="upperMultiplicity terminator FunctionalData" annotations="//@annotations.9">
269 <value xsi:type="language_1:Forall">
270 <quantifiedVariables name="src">
271 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
272 </quantifiedVariables>
273 <quantifiedVariables name="trg 1">
274 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
275 </quantifiedVariables>
276 <quantifiedVariables name="trg 2">
277 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
278 </quantifiedVariables>
279 <expression xsi:type="language_1:Impl">
280 <leftOperand xsi:type="language_1:And">
281 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
282 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
283 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/>
284 </operands>
285 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
286 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
287 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/>
288 </operands>
289 </leftOperand>
290 <rightOperand xsi:type="language_1:Not">
291 <operand xsi:type="language_1:Distinct">
292 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.1"/>
293 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.2"/>
294 </operand>
295 </rightOperand>
296 </expression>
297 </value>
298 </assertions>
299 <assertions name="upperMultiplicity interface FunctionalData" annotations="//@annotations.10">
300 <value xsi:type="language_1:Forall">
301 <quantifiedVariables name="src">
302 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
303 </quantifiedVariables>
304 <quantifiedVariables name="trg 1">
305 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
306 </quantifiedVariables>
307 <quantifiedVariables name="trg 2">
308 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
309 </quantifiedVariables>
310 <expression xsi:type="language_1:Impl">
311 <leftOperand xsi:type="language_1:And">
312 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
313 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
314 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
315 </operands>
316 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
317 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
318 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
319 </operands>
320 </leftOperand>
321 <rightOperand xsi:type="language_1:Not">
322 <operand xsi:type="language_1:Distinct">
323 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
324 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
325 </operand>
326 </rightOperand>
327 </expression>
328 </value>
329 </assertions>
330 <assertions name="oppositeReference interface FunctionalElement" annotations="//@annotations.11">
331 <value xsi:type="language_1:Forall">
332 <quantifiedVariables name="src">
333 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
334 </quantifiedVariables>
335 <quantifiedVariables name="trg">
336 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
337 </quantifiedVariables>
338 <expression xsi:type="language_1:Iff">
339 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
340 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
342 </leftOperand>
343 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
344 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.1"/>
345 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
346 </rightOperand>
347 </expression>
348 </value>
349 </assertions>
350 <assertions name="oppositeReference parent FunctionalElement" annotations="//@annotations.12">
351 <value xsi:type="language_1:Forall">
352 <quantifiedVariables name="src">
353 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
354 </quantifiedVariables>
355 <quantifiedVariables name="trg">
356 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
357 </quantifiedVariables>
358 <expression xsi:type="language_1:Iff">
359 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
360 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
361 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
362 </leftOperand>
363 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
364 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
365 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
366 </rightOperand>
367 </expression>
368 </value>
369 </assertions>
370 <assertions name="oppositeReference data FAMTerminator" annotations="//@annotations.13">
371 <value xsi:type="language_1:Forall">
372 <quantifiedVariables name="src">
373 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
374 </quantifiedVariables>
375 <quantifiedVariables name="trg">
376 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
377 </quantifiedVariables>
378 <expression xsi:type="language_1:Iff">
379 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
380 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
381 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
382 </leftOperand>
383 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
384 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.1"/>
385 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
386 </rightOperand>
387 </expression>
388 </value>
389 </assertions>
390 <assertions name="oppositeReference from InformationLink" annotations="//@annotations.14">
391 <value xsi:type="language_1:Forall">
392 <quantifiedVariables name="src">
393 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
394 </quantifiedVariables>
395 <quantifiedVariables name="trg">
396 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
397 </quantifiedVariables>
398 <expression xsi:type="language_1:Iff">
399 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
400 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
401 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
402 </leftOperand>
403 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
404 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
405 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
406 </rightOperand>
407 </expression>
408 </value>
409 </assertions>
410 <assertions name="oppositeReference to InformationLink" annotations="//@annotations.15">
411 <value xsi:type="language_1:Forall">
412 <quantifiedVariables name="src">
413 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
414 </quantifiedVariables>
415 <quantifiedVariables name="trg">
416 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
417 </quantifiedVariables>
418 <expression xsi:type="language_1:Iff">
419 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
420 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
421 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
422 </leftOperand>
423 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
424 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
425 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
426 </rightOperand>
427 </expression>
428 </value>
429 </assertions>
430 <assertions name="oppositeReference data FunctionalInterface" annotations="//@annotations.16">
431 <value xsi:type="language_1:Forall">
432 <quantifiedVariables name="src">
433 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
434 </quantifiedVariables>
435 <quantifiedVariables name="trg">
436 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
437 </quantifiedVariables>
438 <expression xsi:type="language_1:Iff">
439 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
440 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
441 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
442 </leftOperand>
443 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
444 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
445 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
446 </rightOperand>
447 </expression>
448 </value>
449 </assertions>
450 <assertions name="lowerMultiplicity type Function" annotations="//@annotations.17">
451 <value xsi:type="language_1:Forall">
452 <quantifiedVariables name="src">
453 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
454 </quantifiedVariables>
455 <expression xsi:type="language_1:Exists">
456 <quantifiedVariables name="trg 1">
457 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
458 </quantifiedVariables>
459 <expression xsi:type="language_1:And">
460 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
461 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
462 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@expression/@quantifiedVariables.0"/>
463 </operands>
464 </expression>
465 </expression>
466 </value>
467 </assertions>
468 <assertions name="upperMultiplicity type Function" annotations="//@annotations.18">
469 <value xsi:type="language_1:Forall">
470 <quantifiedVariables name="src">
471 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
472 </quantifiedVariables>
473 <quantifiedVariables name="trg 1">
474 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
475 </quantifiedVariables>
476 <quantifiedVariables name="trg 2">
477 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
478 </quantifiedVariables>
479 <expression xsi:type="language_1:Impl">
480 <leftOperand xsi:type="language_1:And">
481 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
482 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
483 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
484 </operands>
485 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
486 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
487 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/>
488 </operands>
489 </leftOperand>
490 <rightOperand xsi:type="language_1:Not">
491 <operand xsi:type="language_1:Distinct">
492 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
493 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.2"/>
494 </operand>
495 </rightOperand>
496 </expression>
497 </value>
498 </assertions>
499 <assertions name="errorpattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.27">
500 <value xsi:type="language_1:Forall">
501 <quantifiedVariables name="p0">
502 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
503 </quantifiedVariables>
504 <quantifiedVariables name="p1">
505 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
506 </quantifiedVariables>
507 <expression xsi:type="language_1:Not">
508 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
509 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
510 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
511 </operand>
512 </expression>
513 </value>
514 </assertions>
515 <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement">
516 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
517 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
518 </relations>
519 <relations xsi:type="language_1:RelationDeclaration" name="model reference FunctionalElement">
520 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
521 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
522 </relations>
523 <relations xsi:type="language_1:RelationDeclaration" name="parent reference FunctionalElement">
524 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
525 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
526 </relations>
527 <relations xsi:type="language_1:RelationDeclaration" name="rootElements reference FunctionalArchitectureModel">
528 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
529 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
530 </relations>
531 <relations xsi:type="language_1:RelationDeclaration" name="subElements reference Function">
532 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
533 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
534 </relations>
535 <relations xsi:type="language_1:RelationDeclaration" name="data reference FAMTerminator">
536 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
537 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
538 </relations>
539 <relations xsi:type="language_1:RelationDeclaration" name="from reference InformationLink">
540 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
541 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
542 </relations>
543 <relations xsi:type="language_1:RelationDeclaration" name="to reference InformationLink">
544 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
545 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
546 </relations>
547 <relations xsi:type="language_1:RelationDeclaration" name="data reference FunctionalInterface">
548 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
549 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
550 </relations>
551 <relations xsi:type="language_1:RelationDeclaration" name="element reference FunctionalInterface">
552 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
553 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
554 </relations>
555 <relations xsi:type="language_1:RelationDeclaration" name="IncomingLinks reference FunctionalInput">
556 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
557 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
558 </relations>
559 <relations xsi:type="language_1:RelationDeclaration" name="outgoingLinks reference FunctionalOutput">
560 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
561 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
562 </relations>
563 <relations xsi:type="language_1:RelationDeclaration" name="terminator reference FunctionalData">
564 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
565 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
566 </relations>
567 <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalData">
568 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
569 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
570 </relations>
571 <relations xsi:type="language_1:RelationDeclaration" name="type attribute Function">
572 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
573 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
574 </relations>
575 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasRoot" annotations="//@annotations.19">
576 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
577 <variables name="parameter F">
578 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
579 </variables>
580 <value xsi:type="language_1:Or">
581 <operands xsi:type="language_1:Exists">
582 <quantifiedVariables name="variable Model">
583 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
584 </quantifiedVariables>
585 <expression xsi:type="language_1:And">
586 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
587 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
588 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
589 </operands>
590 </expression>
591 </operands>
592 </value>
593 </relations>
594 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasInt" annotations="//@annotations.20">
595 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
596 <variables name="parameter F">
597 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
598 </variables>
599 <value xsi:type="language_1:Or">
600 <operands xsi:type="language_1:Forall">
601 <quantifiedVariables name="variable Child">
602 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
603 </quantifiedVariables>
604 <quantifiedVariables name="variable Model">
605 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
606 </quantifiedVariables>
607 <expression xsi:type="language_1:And">
608 <operands xsi:type="language_1:InstanceOf">
609 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
610 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
611 </operands>
612 <operands xsi:type="language_1:Not">
613 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
614 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
615 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
616 </operand>
617 </operands>
618 <operands xsi:type="language_1:Not">
619 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
620 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.1"/>
621 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
622 </operand>
623 </operands>
624 </expression>
625 </operands>
626 </value>
627 </relations>
628 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam hasLeaf" annotations="//@annotations.21">
629 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
630 <variables name="parameter F">
631 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
632 </variables>
633 <value xsi:type="language_1:Or">
634 <operands xsi:type="language_1:Exists">
635 <quantifiedVariables name="variable Par">
636 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
637 </quantifiedVariables>
638 <quantifiedVariables name="variable Child">
639 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
640 </quantifiedVariables>
641 <expression xsi:type="language_1:And">
642 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
643 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
644 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
645 </operands>
646 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
647 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.1"/>
648 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
649 </operands>
650 </expression>
651 </operands>
652 </value>
653 </relations>
654 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam model" annotations="//@annotations.22">
655 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
656 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
657 <variables name="parameter This">
658 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
659 </variables>
660 <variables name="parameter Target">
661 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
662 </variables>
663 <value xsi:type="language_1:Or">
664 <operands xsi:type="language_1:And">
665 <operands xsi:type="language_1:InstanceOf">
666 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
667 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
668 </operands>
669 <operands xsi:type="language_1:InstanceOf">
670 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
671 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
672 </operands>
673 </operands>
674 </value>
675 </relations>
676 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam rootElements" annotations="//@annotations.23">
677 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
678 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
679 <variables name="parameter Model">
680 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
681 </variables>
682 <variables name="parameter Root">
683 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
684 </variables>
685 <value xsi:type="language_1:Or">
686 <operands xsi:type="language_1:And">
687 <operands xsi:type="language_1:InstanceOf">
688 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
689 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
690 </operands>
691 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
692 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
693 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
694 </operands>
695 </operands>
696 </value>
697 </relations>
698 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam type" annotations="//@annotations.24">
699 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
700 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
701 <variables name="parameter This">
702 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
703 </variables>
704 <variables name="parameter Target">
705 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
706 </variables>
707 <value xsi:type="language_1:Or">
708 <operands xsi:type="language_1:Exists">
709 <quantifiedVariables name="variable Model">
710 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
711 </quantifiedVariables>
712 <expression xsi:type="language_1:And">
713 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
714 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
715 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
716 </operands>
717 <operands xsi:type="language_1:Equals">
718 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
719 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
720 </operands>
721 </expression>
722 </operands>
723 <operands xsi:type="language_1:Forall">
724 <quantifiedVariables name="variable Child">
725 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
726 </quantifiedVariables>
727 <quantifiedVariables name="variable Model">
728 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
729 </quantifiedVariables>
730 <expression xsi:type="language_1:And">
731 <operands xsi:type="language_1:InstanceOf">
732 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
733 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
734 </operands>
735 <operands xsi:type="language_1:Not">
736 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
737 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.1/@quantifiedVariables.0"/>
738 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
739 </operand>
740 </operands>
741 <operands xsi:type="language_1:Not">
742 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
743 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.1/@quantifiedVariables.1"/>
744 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
745 </operand>
746 </operands>
747 <operands xsi:type="language_1:Equals">
748 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
749 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
750 </operands>
751 </expression>
752 </operands>
753 <operands xsi:type="language_1:Exists">
754 <quantifiedVariables name="variable Par">
755 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
756 </quantifiedVariables>
757 <quantifiedVariables name="variable Child">
758 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
759 </quantifiedVariables>
760 <expression xsi:type="language_1:And">
761 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
762 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
763 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.2/@quantifiedVariables.0"/>
764 </operands>
765 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
766 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.2/@quantifiedVariables.1"/>
767 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
768 </operands>
769 <operands xsi:type="language_1:Equals">
770 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
771 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.1"/>
772 </operands>
773 </expression>
774 </operands>
775 </value>
776 </relations>
777 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam parent" annotations="//@annotations.25">
778 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
779 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
780 <variables name="parameter Func">
781 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
782 </variables>
783 <variables name="parameter Par">
784 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
785 </variables>
786 <value xsi:type="language_1:Or">
787 <operands xsi:type="language_1:And">
788 <operands xsi:type="language_1:InstanceOf">
789 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
790 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
791 </operands>
792 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
793 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
794 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
795 </operands>
796 <operands xsi:type="language_1:InstanceOf">
797 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
798 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
799 </operands>
800 </operands>
801 </value>
802 </relations>
803 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.26">
804 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
805 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
806 <variables name="parameter T">
807 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
808 </variables>
809 <variables name="parameter I">
810 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
811 </variables>
812 <value xsi:type="language_1:Or">
813 <operands xsi:type="language_1:Exists">
814 <quantifiedVariables name="variable Out">
815 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
816 </quantifiedVariables>
817 <expression xsi:type="language_1:And">
818 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
819 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
820 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
821 </operands>
822 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
823 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
824 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
825 </operands>
826 </expression>
827 </operands>
828 <operands xsi:type="language_1:Exists">
829 <quantifiedVariables name="variable In">
830 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
831 </quantifiedVariables>
832 <expression xsi:type="language_1:And">
833 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
834 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
835 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/>
836 </operands>
837 <operands xsi:type="language_1:InstanceOf">
838 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/>
839 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
840 </operands>
841 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
842 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.1/@quantifiedVariables.0"/>
843 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
844 </operands>
845 </expression>
846 </operands>
847 </value>
848 </relations>
849 <elements name="Root literal FunctionType" definedInType="//@types.9"/>
850 <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/>
851 <elements name="Leaf literal FunctionType" definedInType="//@types.9"/>
852 <elements name="o 1" definedInType="//@types.10"/>
853 <containmentHierarchies typesOrderedInHierarchy="//@types.5 //@types.6 //@types.1 //@types.3 //@types.0 //@types.4 //@types.7 //@types.2 //@types.8 //@types.10 //@types.11" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/>
854 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/>
855 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/>
856 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/>
857 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.2" upper="1"/>
858 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.5" upper="1"/>
859 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.6" upper="1"/>
860 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.6" relation="//@relations.7" lower="1"/>
861 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.7" upper="1"/>
862 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/>
863 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.9" relation="//@relations.12" upper="1"/>
864 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.13" upper="1"/>
865 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.11" inverseA="//@relations.0" inverseB="//@relations.9"/>
866 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.12" inverseA="//@relations.2" inverseB="//@relations.4"/>
867 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.13" inverseA="//@relations.5" inverseB="//@relations.12"/>
868 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.14" inverseA="//@relations.6" inverseB="//@relations.11"/>
869 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.7" inverseB="//@relations.10"/>
870 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/>
871 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/>
872 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/>
873 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasRoot"/>
874 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasInt"/>
875 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.hasLeaf"/>
876 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.model"/>
877 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.rootElements"/>
878 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.type"/>
879 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.parent"/>
880 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/>
881 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.19" query="//@annotations.26"/>
882</language:LogicProblem>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
new file mode 100644
index 00000000..242c404c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/vampireProblem.tptp
@@ -0,0 +1,55 @@
1% This is an initial Test Comment
2fof ( typeDef_FunctionType_enum , axiom , ! [ A ] : ( type_FunctionType_enum ( A ) <=> ( A = "aRoot literal FunctionType" | ( A = "aIntermediate literal FunctionType" | A = "aLeaf literal FunctionType" ) ) ) ) .
3fof ( typeDef_FunctionalArchitectureModel_class_DefinedPart , axiom , ! [ A ] : ( type_FunctionalArchitectureModel_class_DefinedPart ( A ) <=> A = "ao 1" ) ) .
4fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_FunctionType_enum ( A ) & ( type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( type_FunctionalInput_class ( A ) & ~ type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) | ( ~ type_FunctionType_enum ( A ) & ( ~ type_FunctionalData_class ( A ) & ( ~ type_Function_class ( A ) & ( ~ type_InformationLink_class ( A ) & ( ~ type_FunctionalOutput_class ( A ) & ( ~ type_FunctionalArchitectureModel_class ( A ) & ( ~ type_FunctionalElement_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_DefinedPart ( A ) & ( ~ type_FAMTerminator_class ( A ) & ( ~ type_FunctionalArchitectureModel_class_UndefinedPart ( A ) & ( ~ type_FunctionalInput_class ( A ) & type_FunctionalInterface_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
5fof ( compliance_interface_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) .
6fof ( compliance_model_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_model_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_FunctionalArchitectureModel_class ( Var_1 ) ) ) ) .
7fof ( compliance_parent_reference_FunctionalElement , axiom , ! [ Var_0 , Var_1 ] : ( rel_parent_reference_FunctionalElement ( Var_0 , Var_1 ) => ( type_FunctionalElement_class ( Var_0 ) & type_Function_class ( Var_1 ) ) ) ) .
8fof ( compliance_rootElements_reference_FunctionalArchitectureModel , axiom , ! [ Var_0 , Var_1 ] : ( rel_rootElements_reference_FunctionalArchitectureModel ( Var_0 , Var_1 ) => ( type_FunctionalArchitectureModel_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) .
9fof ( compliance_subElements_reference_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_subElements_reference_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) .
10fof ( compliance_data_reference_FAMTerminator , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FAMTerminator ( Var_0 , Var_1 ) => ( type_FAMTerminator_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) .
11fof ( compliance_from_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_from_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalOutput_class ( Var_1 ) ) ) ) .
12fof ( compliance_to_reference_InformationLink , axiom , ! [ Var_0 , Var_1 ] : ( rel_to_reference_InformationLink ( Var_0 , Var_1 ) => ( type_InformationLink_class ( Var_0 ) & type_FunctionalInput_class ( Var_1 ) ) ) ) .
13fof ( compliance_data_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_data_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalData_class ( Var_1 ) ) ) ) .
14fof ( compliance_element_reference_FunctionalInterface , axiom , ! [ Var_0 , Var_1 ] : ( rel_element_reference_FunctionalInterface ( Var_0 , Var_1 ) => ( type_FunctionalInterface_class ( Var_0 ) & type_FunctionalElement_class ( Var_1 ) ) ) ) .
15fof ( compliance_IncomingLinks_reference_FunctionalInput , axiom , ! [ Var_0 , Var_1 ] : ( rel_IncomingLinks_reference_FunctionalInput ( Var_0 , Var_1 ) => ( type_FunctionalInput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) .
16fof ( compliance_outgoingLinks_reference_FunctionalOutput , axiom , ! [ Var_0 , Var_1 ] : ( rel_outgoingLinks_reference_FunctionalOutput ( Var_0 , Var_1 ) => ( type_FunctionalOutput_class ( Var_0 ) & type_InformationLink_class ( Var_1 ) ) ) ) .
17fof ( compliance_terminator_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_terminator_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FAMTerminator_class ( Var_1 ) ) ) ) .
18fof ( compliance_interface_reference_FunctionalData , axiom , ! [ Var_0 , Var_1 ] : ( rel_interface_reference_FunctionalData ( Var_0 , Var_1 ) => ( type_FunctionalData_class ( Var_0 ) & type_FunctionalInterface_class ( Var_1 ) ) ) ) .
19fof ( compliance_type_attribute_Function , axiom , ! [ Var_0 , Var_1 ] : ( rel_type_attribute_Function ( Var_0 , Var_1 ) => ( type_Function_class ( Var_0 ) & type_FunctionType_enum ( Var_1 ) ) ) ) .
20fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot , axiom , ! [ Var_parameter_F ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot ( Var_parameter_F ) => type_Function_class ( Var_parameter_F ) ) ) .
21fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot , axiom , ! [ Var_parameter_F ] : ( type_Function_class ( Var_parameter_F ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasRoot ( Var_parameter_F ) <=> ? [ Var_variable_Model ] : ( type_FunctionalArchitectureModel_class ( Var_variable_Model ) & rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_F ) ) ) ) ) .
22fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt , axiom , ! [ Var_parameter_F ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt ( Var_parameter_F ) => type_Function_class ( Var_parameter_F ) ) ) .
23fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt , axiom , ! [ Var_parameter_F ] : ( type_Function_class ( Var_parameter_F ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasInt ( Var_parameter_F ) <=> ! [ Var_variable_Child , Var_variable_Model ] : ( ( type_Function_class ( Var_variable_Child ) & type_FunctionalArchitectureModel_class ( Var_variable_Model ) ) => ( type_Function_class ( Var_parameter_F ) & ( ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_F ) & ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_F ) ) ) ) ) ) ) .
24fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf , axiom , ! [ Var_parameter_F ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf ( Var_parameter_F ) => type_Function_class ( Var_parameter_F ) ) ) .
25fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf , axiom , ! [ Var_parameter_F ] : ( type_Function_class ( Var_parameter_F ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_hasLeaf ( Var_parameter_F ) <=> ? [ Var_variable_Par , Var_variable_Child ] : ( type_Function_class ( Var_variable_Par ) & ( type_Function_class ( Var_variable_Child ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_F , Var_variable_Par ) & rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_F ) ) ) ) ) ) ) .
26fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model ( Var_parameter_This , Var_parameter_Target ) => ( type_FunctionalArchitectureModel_class ( Var_parameter_Target ) & type_FunctionalElement_class ( Var_parameter_This ) ) ) ) .
27fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( ( type_FunctionalArchitectureModel_class ( Var_parameter_Target ) & type_FunctionalElement_class ( Var_parameter_This ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_model ( Var_parameter_This , Var_parameter_Target ) <=> ( type_FunctionalElement_class ( Var_parameter_This ) & type_FunctionalArchitectureModel_class ( Var_parameter_Target ) ) ) ) ) .
28fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements , axiom , ! [ Var_parameter_Model , Var_parameter_Root ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_parameter_Model , Var_parameter_Root ) => ( type_FunctionalArchitectureModel_class ( Var_parameter_Model ) & type_Function_class ( Var_parameter_Root ) ) ) ) .
29fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements , axiom , ! [ Var_parameter_Model , Var_parameter_Root ] : ( ( type_FunctionalArchitectureModel_class ( Var_parameter_Model ) & type_Function_class ( Var_parameter_Root ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_parameter_Model , Var_parameter_Root ) <=> ( type_Function_class ( Var_parameter_Root ) & rel_rootElements_reference_FunctionalArchitectureModel ( Var_parameter_Model , Var_parameter_Root ) ) ) ) ) .
30fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type ( Var_parameter_This , Var_parameter_Target ) => ( type_FunctionType_enum ( Var_parameter_Target ) & type_Function_class ( Var_parameter_This ) ) ) ) .
31fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type , axiom , ! [ Var_parameter_This , Var_parameter_Target ] : ( ( type_FunctionType_enum ( Var_parameter_Target ) & type_Function_class ( Var_parameter_This ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_type ( Var_parameter_This , Var_parameter_Target ) <=> ( ? [ Var_variable_Model ] : ( type_FunctionalArchitectureModel_class ( Var_variable_Model ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_This ) & Var_parameter_Target = "aRoot literal FunctionType" ) ) | ( ! [ Var_variable_Child , Var_variable_Model ] : ( ( type_Function_class ( Var_variable_Child ) & type_FunctionalArchitectureModel_class ( Var_variable_Model ) ) => ( type_Function_class ( Var_parameter_This ) & ( ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_This ) & ( ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_rootElements ( Var_variable_Model , Var_parameter_This ) & Var_parameter_Target = "aLeaf literal FunctionType" ) ) ) ) | ? [ Var_variable_Par , Var_variable_Child ] : ( type_Function_class ( Var_variable_Par ) & ( type_Function_class ( Var_variable_Child ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_This , Var_variable_Par ) & ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_variable_Child , Var_parameter_This ) & Var_parameter_Target = "aIntermediate literal FunctionType" ) ) ) ) ) ) ) ) ) .
32fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent , axiom , ! [ Var_parameter_Func , Var_parameter_Par ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_Func , Var_parameter_Par ) => ( type_Function_class ( Var_parameter_Par ) & type_Function_class ( Var_parameter_Func ) ) ) ) .
33fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent , axiom , ! [ Var_parameter_Func , Var_parameter_Par ] : ( ( type_Function_class ( Var_parameter_Par ) & type_Function_class ( Var_parameter_Func ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_parent ( Var_parameter_Func , Var_parameter_Par ) <=> ( type_Function_class ( Var_parameter_Func ) & ( rel_parent_reference_FunctionalElement ( Var_parameter_Func , Var_parameter_Par ) & type_Function_class ( Var_parameter_Par ) ) ) ) ) ) .
34fof ( compliance_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation , axiom , ! [ Var_parameter_T , Var_parameter_I ] : ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation ( Var_parameter_T , Var_parameter_I ) => ( type_FAMTerminator_class ( Var_parameter_T ) & type_InformationLink_class ( Var_parameter_I ) ) ) ) .
35fof ( relation_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation , axiom , ! [ Var_parameter_T , Var_parameter_I ] : ( ( type_FAMTerminator_class ( Var_parameter_T ) & type_InformationLink_class ( Var_parameter_I ) ) => ( rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation ( Var_parameter_T , Var_parameter_I ) <=> ( ? [ Var_variable_Out ] : ( type_FunctionalOutput_class ( Var_variable_Out ) & ( rel_outgoingLinks_reference_FunctionalOutput ( Var_variable_Out , Var_parameter_I ) & rel_terminator_reference_FunctionalData ( Var_variable_Out , Var_parameter_T ) ) ) | ? [ Var_variable_In ] : ( type_FunctionalInput_class ( Var_variable_In ) & ( rel_to_reference_InformationLink ( Var_parameter_I , Var_variable_In ) & ( type_FunctionalInput_class ( Var_variable_In ) & rel_terminator_reference_FunctionalData ( Var_variable_In , Var_parameter_T ) ) ) ) ) ) ) ) .
36fof ( upperMultiplicity_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
37fof ( lowerMultiplicity_model_FunctionalElement , axiom , ! [ Var_src ] : ( type_FunctionalElement_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) ) ) ) .
38fof ( upperMultiplicity_model_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_FunctionalArchitectureModel_class ( Var_trg_1 ) & type_FunctionalArchitectureModel_class ( Var_trg_2 ) ) ) => ( ( rel_model_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_model_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
39fof ( upperMultiplicity_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalElement_class ( Var_src ) & ( type_Function_class ( Var_trg_1 ) & type_Function_class ( Var_trg_2 ) ) ) => ( ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg_1 ) & rel_parent_reference_FunctionalElement ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
40fof ( upperMultiplicity_data_FAMTerminator , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FAMTerminator_class ( Var_src ) & ( type_FunctionalData_class ( Var_trg_1 ) & type_FunctionalData_class ( Var_trg_2 ) ) ) => ( ( rel_data_reference_FAMTerminator ( Var_src , Var_trg_1 ) & rel_data_reference_FAMTerminator ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
41fof ( upperMultiplicity_from_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalOutput_class ( Var_trg_1 ) & type_FunctionalOutput_class ( Var_trg_2 ) ) ) => ( ( rel_from_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_from_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
42fof ( lowerMultiplicity_to_InformationLink , axiom , ! [ Var_src ] : ( type_InformationLink_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionalInput_class ( Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) ) ) ) .
43fof ( upperMultiplicity_to_InformationLink , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_InformationLink_class ( Var_src ) & ( type_FunctionalInput_class ( Var_trg_1 ) & type_FunctionalInput_class ( Var_trg_2 ) ) ) => ( ( rel_to_reference_InformationLink ( Var_src , Var_trg_1 ) & rel_to_reference_InformationLink ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
44fof ( upperMultiplicity_element_FunctionalInterface , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalInterface_class ( Var_src ) & ( type_FunctionalElement_class ( Var_trg_1 ) & type_FunctionalElement_class ( Var_trg_2 ) ) ) => ( ( rel_element_reference_FunctionalInterface ( Var_src , Var_trg_1 ) & rel_element_reference_FunctionalInterface ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
45fof ( upperMultiplicity_terminator_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FAMTerminator_class ( Var_trg_1 ) & type_FAMTerminator_class ( Var_trg_2 ) ) ) => ( ( rel_terminator_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_terminator_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
46fof ( upperMultiplicity_interface_FunctionalData , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_FunctionalData_class ( Var_src ) & ( type_FunctionalInterface_class ( Var_trg_1 ) & type_FunctionalInterface_class ( Var_trg_2 ) ) ) => ( ( rel_interface_reference_FunctionalData ( Var_src , Var_trg_1 ) & rel_interface_reference_FunctionalData ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
47fof ( oppositeReference_interface_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_FunctionalInterface_class ( Var_trg ) ) => ( rel_interface_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_element_reference_FunctionalInterface ( Var_trg , Var_src ) ) ) ) .
48fof ( oppositeReference_parent_FunctionalElement , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalElement_class ( Var_src ) & type_Function_class ( Var_trg ) ) => ( rel_parent_reference_FunctionalElement ( Var_src , Var_trg ) <=> rel_subElements_reference_Function ( Var_trg , Var_src ) ) ) ) .
49fof ( oppositeReference_data_FAMTerminator , axiom , ! [ Var_src , Var_trg ] : ( ( type_FAMTerminator_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FAMTerminator ( Var_src , Var_trg ) <=> rel_terminator_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
50fof ( oppositeReference_from_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalOutput_class ( Var_trg ) ) => ( rel_from_reference_InformationLink ( Var_src , Var_trg ) <=> rel_outgoingLinks_reference_FunctionalOutput ( Var_trg , Var_src ) ) ) ) .
51fof ( oppositeReference_to_InformationLink , axiom , ! [ Var_src , Var_trg ] : ( ( type_InformationLink_class ( Var_src ) & type_FunctionalInput_class ( Var_trg ) ) => ( rel_to_reference_InformationLink ( Var_src , Var_trg ) <=> rel_IncomingLinks_reference_FunctionalInput ( Var_trg , Var_src ) ) ) ) .
52fof ( oppositeReference_data_FunctionalInterface , axiom , ! [ Var_src , Var_trg ] : ( ( type_FunctionalInterface_class ( Var_src ) & type_FunctionalData_class ( Var_trg ) ) => ( rel_data_reference_FunctionalInterface ( Var_src , Var_trg ) <=> rel_interface_reference_FunctionalData ( Var_trg , Var_src ) ) ) ) .
53fof ( lowerMultiplicity_type_Function , axiom , ! [ Var_src ] : ( type_Function_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_FunctionType_enum ( Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_1 ) ) ) ) .
54fof ( upperMultiplicity_type_Function , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Function_class ( Var_src ) & ( type_FunctionType_enum ( Var_trg_1 ) & type_FunctionType_enum ( Var_trg_2 ) ) ) => ( ( rel_type_attribute_Function ( Var_src , Var_trg_1 ) & rel_type_attribute_Function ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
55fof ( errorpattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation , axiom , ! [ Var_p0 , Var_p1 ] : ( ( type_FAMTerminator_class ( Var_p0 ) & type_InformationLink_class ( Var_p1 ) ) => ~ rel_pattern_hu_bme_mit_inf_dslreasoner_domains_transima_fam_terminatorAndInformation ( Var_p0 , Var_p1 ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp
new file mode 100644
index 00000000..aa088242
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/MedicalSystem/vampireProblem.tptp
@@ -0,0 +1,67 @@
1% This is an initial Test Comment
2fof ( typeDef_HealthSystem_class_DefinedPart , axiom , ! [ A ] : ( type_HealthSystem_class_DefinedPart ( A ) <=> A = "ao 1" ) ) .
3fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> ( ( type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ( ~ type_Allergy_class ( A ) & ( ~ type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( type_HealthSystem_class ( A ) & ( type_HealthSystem_class_DefinedPart ( A ) & ( ~ type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) | ( ~ type_Allergy_class ( A ) & ( type_Treatment_class ( A ) & ( ~ type_Medicine_class ( A ) & ( ~ type_HealthSystem_class_UndefinedPart ( A ) & ( ~ type_Symptom_class ( A ) & ( ~ type_ExaminationResult_class ( A ) & ( ~ type_Examination_class ( A ) & ( ~ type_Disease_class ( A ) & ( ~ type_MedicalRecord_class ( A ) & ( ~ type_Immunization_class ( A ) & ( ~ type_Patient_class ( A ) & ( ~ type_Injury_class ( A ) & ( ~ type_HealthSystem_class ( A ) & ( ~ type_HealthSystem_class_DefinedPart ( A ) & ( type_Medication_class ( A ) & ~ type_HealthProblem_class ( A ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) .
4fof ( compliance_records_reference_Patient , axiom , ! [ Var_0 , Var_1 ] : ( rel_records_reference_Patient ( Var_0 , Var_1 ) => ( type_Patient_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) .
5fof ( compliance_healthsystem_reference_Patient , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthsystem_reference_Patient ( Var_0 , Var_1 ) => ( type_Patient_class ( Var_0 ) & type_HealthSystem_class ( Var_1 ) ) ) ) .
6fof ( compliance_patient_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_patient_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Patient_class ( Var_1 ) ) ) ) .
7fof ( compliance_examination_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_examination_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Examination_class ( Var_1 ) ) ) ) .
8fof ( compliance_medicine_reference_HealthSystem , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicine_reference_HealthSystem ( Var_0 , Var_1 ) => ( type_HealthSystem_class ( Var_0 ) & type_Medicine_class ( Var_1 ) ) ) ) .
9fof ( compliance_examinationResult_reference_Examination , axiom , ! [ Var_0 , Var_1 ] : ( rel_examinationResult_reference_Examination ( Var_0 , Var_1 ) => ( type_Examination_class ( Var_0 ) & type_ExaminationResult_class ( Var_1 ) ) ) ) .
10fof ( compliance_healthsystem_reference_Examination , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthsystem_reference_Examination ( Var_0 , Var_1 ) => ( type_Examination_class ( Var_0 ) & type_HealthSystem_class ( Var_1 ) ) ) ) .
11fof ( compliance_medicalrecord_reference_Symptom , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicalrecord_reference_Symptom ( Var_0 , Var_1 ) => ( type_Symptom_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) .
12fof ( compliance_examinationType_reference_ExaminationResult , axiom , ! [ Var_0 , Var_1 ] : ( rel_examinationType_reference_ExaminationResult ( Var_0 , Var_1 ) => ( type_ExaminationResult_class ( Var_0 ) & type_Examination_class ( Var_1 ) ) ) ) .
13fof ( compliance_medicalrecord_reference_ExaminationResult , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicalrecord_reference_ExaminationResult ( Var_0 , Var_1 ) => ( type_ExaminationResult_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) .
14fof ( compliance_patient_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_patient_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_Patient_class ( Var_1 ) ) ) ) .
15fof ( compliance_healthProblems_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_healthProblems_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_HealthProblem_class ( Var_1 ) ) ) ) .
16fof ( compliance_symptom_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_symptom_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_Symptom_class ( Var_1 ) ) ) ) .
17fof ( compliance_examinationResults_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_examinationResults_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_ExaminationResult_class ( Var_1 ) ) ) ) .
18fof ( compliance_treatment_reference_MedicalRecord , axiom , ! [ Var_0 , Var_1 ] : ( rel_treatment_reference_MedicalRecord ( Var_0 , Var_1 ) => ( type_MedicalRecord_class ( Var_0 ) & type_Treatment_class ( Var_1 ) ) ) ) .
19fof ( compliance_record_reference_HealthProblem , axiom , ! [ Var_0 , Var_1 ] : ( rel_record_reference_HealthProblem ( Var_0 , Var_1 ) => ( type_HealthProblem_class ( Var_0 ) & type_MedicalRecord_class ( Var_1 ) ) ) ) .
20fof ( compliance_recommended_medicine_reference_HealthProblem , axiom , ! [ Var_0 , Var_1 ] : ( rel_recommended_medicine_reference_HealthProblem ( Var_0 , Var_1 ) => ( type_HealthProblem_class ( Var_0 ) & type_Medicine_class ( Var_1 ) ) ) ) .
21fof ( compliance_medicine_reference_Treatment , axiom , ! [ Var_0 , Var_1 ] : ( rel_medicine_reference_Treatment ( Var_0 , Var_1 ) => ( type_Treatment_class ( Var_0 ) & type_Medicine_class ( Var_1 ) ) ) ) .
22fof ( compliance_pattern_ca_mcgill_dp19_queries_treatment , axiom , ! [ Var_parameter_mr , Var_parameter_tr ] : ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_parameter_tr ) => ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Treatment_class ( Var_parameter_tr ) ) ) ) .
23fof ( relation_pattern_ca_mcgill_dp19_queries_treatment , axiom , ! [ Var_parameter_mr , Var_parameter_tr ] : ( ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Treatment_class ( Var_parameter_tr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_parameter_tr ) <=> ( rel_treatment_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_tr ) & type_Treatment_class ( Var_parameter_tr ) ) ) ) ) .
24fof ( compliance_pattern_ca_mcgill_dp19_queries_examinationresult , axiom , ! [ Var_parameter_mr , Var_parameter_er ] : ( rel_pattern_ca_mcgill_dp19_queries_examinationresult ( Var_parameter_mr , Var_parameter_er ) => ( type_ExaminationResult_class ( Var_parameter_er ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) .
25fof ( relation_pattern_ca_mcgill_dp19_queries_examinationresult , axiom , ! [ Var_parameter_mr , Var_parameter_er ] : ( ( type_ExaminationResult_class ( Var_parameter_er ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_examinationresult ( Var_parameter_mr , Var_parameter_er ) <=> rel_examinationResults_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_er ) ) ) ) .
26fof ( compliance_pattern_ca_mcgill_dp19_queries_symptom , axiom , ! [ Var_parameter_mr , Var_parameter_sy ] : ( rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_parameter_sy ) => ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Symptom_class ( Var_parameter_sy ) ) ) ) .
27fof ( relation_pattern_ca_mcgill_dp19_queries_symptom , axiom , ! [ Var_parameter_mr , Var_parameter_sy ] : ( ( type_MedicalRecord_class ( Var_parameter_mr ) & type_Symptom_class ( Var_parameter_sy ) ) => ( rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_parameter_sy ) <=> rel_symptom_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_sy ) ) ) ) .
28fof ( compliance_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) .
29fof ( relation_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom ( Var_parameter_mr ) <=> ? [ Var_variable_tr ] : ( type_Treatment_class ( Var_variable_tr ) & ! [ Var_variable_0 ] : ( type_Symptom_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_variable_tr ) & ~ rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) .
30fof ( compliance_pattern_ca_mcgill_dp19_queries_healthProblems , axiom , ! [ Var_parameter_mr , Var_parameter_hp ] : ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_hp ) => ( type_MedicalRecord_class ( Var_parameter_mr ) & type_HealthProblem_class ( Var_parameter_hp ) ) ) ) .
31fof ( relation_pattern_ca_mcgill_dp19_queries_healthProblems , axiom , ! [ Var_parameter_mr , Var_parameter_hp ] : ( ( type_MedicalRecord_class ( Var_parameter_mr ) & type_HealthProblem_class ( Var_parameter_hp ) ) => ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_hp ) <=> rel_healthProblems_reference_MedicalRecord ( Var_parameter_mr , Var_parameter_hp ) ) ) ) .
32fof ( compliance_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) .
33fof ( relation_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult ( Var_parameter_mr ) <=> ? [ Var_variable_hp ] : ( type_HealthProblem_class ( Var_variable_hp ) & ! [ Var_variable_0 ] : ( type_ExaminationResult_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_variable_hp ) & ~ rel_pattern_ca_mcgill_dp19_queries_examinationresult ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) .
34fof ( compliance_pattern_ca_mcgill_dp19_queries_allergy , axiom , ! [ Var_parameter_mr , Var_parameter_al ] : ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_parameter_al ) => ( type_Allergy_class ( Var_parameter_al ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) .
35fof ( relation_pattern_ca_mcgill_dp19_queries_allergy , axiom , ! [ Var_parameter_mr , Var_parameter_al ] : ( ( type_Allergy_class ( Var_parameter_al ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_parameter_al ) <=> ( type_Allergy_class ( Var_parameter_al ) & rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_parameter_al ) ) ) ) ) .
36fof ( compliance_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_parameter_mr ) => type_MedicalRecord_class ( Var_parameter_mr ) ) ) .
37fof ( relation_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_parameter_mr ] : ( type_MedicalRecord_class ( Var_parameter_mr ) => ( rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_parameter_mr ) <=> ? [ Var_variable_al ] : ( type_Allergy_class ( Var_variable_al ) & ! [ Var_variable_0 ] : ( type_Symptom_class ( Var_variable_0 ) => ( rel_pattern_ca_mcgill_dp19_queries_allergy ( Var_parameter_mr , Var_variable_al ) & ~ rel_pattern_ca_mcgill_dp19_queries_symptom ( Var_parameter_mr , Var_variable_0 ) ) ) ) ) ) ) .
38fof ( compliance_pattern_ca_mcgill_dp19_queries_recommended , axiom , ! [ Var_parameter_hp , Var_parameter_med ] : ( rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_parameter_hp , Var_parameter_med ) => ( type_Medicine_class ( Var_parameter_med ) & type_HealthProblem_class ( Var_parameter_hp ) ) ) ) .
39fof ( relation_pattern_ca_mcgill_dp19_queries_recommended , axiom , ! [ Var_parameter_hp , Var_parameter_med ] : ( ( type_Medicine_class ( Var_parameter_med ) & type_HealthProblem_class ( Var_parameter_hp ) ) => ( rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_parameter_hp , Var_parameter_med ) <=> ( rel_recommended_medicine_reference_HealthProblem ( Var_parameter_hp , Var_parameter_med ) & type_Medicine_class ( Var_parameter_med ) ) ) ) ) .
40fof ( compliance_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_parameter_mr , Var_parameter_med ] : ( rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_parameter_mr , Var_parameter_med ) => ( type_Medicine_class ( Var_parameter_med ) & type_MedicalRecord_class ( Var_parameter_mr ) ) ) ) .
41fof ( relation_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_parameter_mr , Var_parameter_med ] : ( ( type_Medicine_class ( Var_parameter_med ) & type_MedicalRecord_class ( Var_parameter_mr ) ) => ( rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_parameter_mr , Var_parameter_med ) <=> ? [ Var_variable_hp , Var_variable_tr ] : ( type_HealthProblem_class ( Var_variable_hp ) & ( type_Treatment_class ( Var_variable_tr ) & ( rel_pattern_ca_mcgill_dp19_queries_healthProblems ( Var_parameter_mr , Var_variable_hp ) & ( rel_pattern_ca_mcgill_dp19_queries_treatment ( Var_parameter_mr , Var_variable_tr ) & ( rel_medicine_reference_Treatment ( Var_variable_tr , Var_parameter_med ) & ( type_Medicine_class ( Var_parameter_med ) & ~ rel_pattern_ca_mcgill_dp19_queries_recommended ( Var_variable_hp , Var_parameter_med ) ) ) ) ) ) ) ) ) ) .
42fof ( upperMultiplicity_healthsystem_Patient , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Patient_class ( Var_src ) & ( type_HealthSystem_class ( Var_trg_1 ) & type_HealthSystem_class ( Var_trg_2 ) ) ) => ( ( rel_healthsystem_reference_Patient ( Var_src , Var_trg_1 ) & rel_healthsystem_reference_Patient ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
43fof ( upperMultiplicity_examination_HealthSystem , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_HealthSystem_class ( Var_src ) & ( type_Examination_class ( Var_trg_1 ) & type_Examination_class ( Var_trg_2 ) ) ) => ( ( rel_examination_reference_HealthSystem ( Var_src , Var_trg_1 ) & rel_examination_reference_HealthSystem ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
44fof ( upperMultiplicity_healthsystem_Examination , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Examination_class ( Var_src ) & ( type_HealthSystem_class ( Var_trg_1 ) & type_HealthSystem_class ( Var_trg_2 ) ) ) => ( ( rel_healthsystem_reference_Examination ( Var_src , Var_trg_1 ) & rel_healthsystem_reference_Examination ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
45fof ( lowerMultiplicity_medicalrecord_Symptom , axiom , ! [ Var_src ] : ( type_Symptom_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_MedicalRecord_class ( Var_trg_1 ) & rel_medicalrecord_reference_Symptom ( Var_src , Var_trg_1 ) ) ) ) .
46fof ( upperMultiplicity_medicalrecord_Symptom , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Symptom_class ( Var_src ) & ( type_MedicalRecord_class ( Var_trg_1 ) & type_MedicalRecord_class ( Var_trg_2 ) ) ) => ( ( rel_medicalrecord_reference_Symptom ( Var_src , Var_trg_1 ) & rel_medicalrecord_reference_Symptom ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
47fof ( lowerMultiplicity_examinationType_ExaminationResult , axiom , ! [ Var_src ] : ( type_ExaminationResult_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_Examination_class ( Var_trg_1 ) & rel_examinationType_reference_ExaminationResult ( Var_src , Var_trg_1 ) ) ) ) .
48fof ( upperMultiplicity_examinationType_ExaminationResult , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_ExaminationResult_class ( Var_src ) & ( type_Examination_class ( Var_trg_1 ) & type_Examination_class ( Var_trg_2 ) ) ) => ( ( rel_examinationType_reference_ExaminationResult ( Var_src , Var_trg_1 ) & rel_examinationType_reference_ExaminationResult ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
49fof ( lowerMultiplicity_medicalrecord_ExaminationResult , axiom , ! [ Var_src ] : ( type_ExaminationResult_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_MedicalRecord_class ( Var_trg_1 ) & rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg_1 ) ) ) ) .
50fof ( upperMultiplicity_medicalrecord_ExaminationResult , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_ExaminationResult_class ( Var_src ) & ( type_MedicalRecord_class ( Var_trg_1 ) & type_MedicalRecord_class ( Var_trg_2 ) ) ) => ( ( rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg_1 ) & rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
51fof ( lowerMultiplicity_patient_MedicalRecord , axiom , ! [ Var_src ] : ( type_MedicalRecord_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_Patient_class ( Var_trg_1 ) & rel_patient_reference_MedicalRecord ( Var_src , Var_trg_1 ) ) ) ) .
52fof ( upperMultiplicity_patient_MedicalRecord , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_MedicalRecord_class ( Var_src ) & ( type_Patient_class ( Var_trg_1 ) & type_Patient_class ( Var_trg_2 ) ) ) => ( ( rel_patient_reference_MedicalRecord ( Var_src , Var_trg_1 ) & rel_patient_reference_MedicalRecord ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
53fof ( lowerMultiplicity_record_HealthProblem , axiom , ! [ Var_src ] : ( type_HealthProblem_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_MedicalRecord_class ( Var_trg_1 ) & rel_record_reference_HealthProblem ( Var_src , Var_trg_1 ) ) ) ) .
54fof ( upperMultiplicity_record_HealthProblem , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_HealthProblem_class ( Var_src ) & ( type_MedicalRecord_class ( Var_trg_1 ) & type_MedicalRecord_class ( Var_trg_2 ) ) ) => ( ( rel_record_reference_HealthProblem ( Var_src , Var_trg_1 ) & rel_record_reference_HealthProblem ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
55fof ( lowerMultiplicity_medicine_Treatment , axiom , ! [ Var_src ] : ( type_Treatment_class ( Var_src ) => ? [ Var_trg_1 ] : ( type_Medicine_class ( Var_trg_1 ) & rel_medicine_reference_Treatment ( Var_src , Var_trg_1 ) ) ) ) .
56fof ( upperMultiplicity_medicine_Treatment , axiom , ! [ Var_src , Var_trg_1 , Var_trg_2 ] : ( ( type_Treatment_class ( Var_src ) & ( type_Medicine_class ( Var_trg_1 ) & type_Medicine_class ( Var_trg_2 ) ) ) => ( ( rel_medicine_reference_Treatment ( Var_src , Var_trg_1 ) & rel_medicine_reference_Treatment ( Var_src , Var_trg_2 ) ) => ~ Var_trg_1 != Var_trg_2 ) ) ) .
57fof ( oppositeReference_records_Patient , axiom , ! [ Var_src , Var_trg ] : ( ( type_Patient_class ( Var_src ) & type_MedicalRecord_class ( Var_trg ) ) => ( rel_records_reference_Patient ( Var_src , Var_trg ) <=> rel_patient_reference_MedicalRecord ( Var_trg , Var_src ) ) ) ) .
58fof ( oppositeReference_healthsystem_Patient , axiom , ! [ Var_src , Var_trg ] : ( ( type_Patient_class ( Var_src ) & type_HealthSystem_class ( Var_trg ) ) => ( rel_healthsystem_reference_Patient ( Var_src , Var_trg ) <=> rel_patient_reference_HealthSystem ( Var_trg , Var_src ) ) ) ) .
59fof ( oppositeReference_examination_HealthSystem , axiom , ! [ Var_src , Var_trg ] : ( ( type_HealthSystem_class ( Var_src ) & type_Examination_class ( Var_trg ) ) => ( rel_examination_reference_HealthSystem ( Var_src , Var_trg ) <=> rel_healthsystem_reference_Examination ( Var_trg , Var_src ) ) ) ) .
60fof ( oppositeReference_examinationResult_Examination , axiom , ! [ Var_src , Var_trg ] : ( ( type_Examination_class ( Var_src ) & type_ExaminationResult_class ( Var_trg ) ) => ( rel_examinationResult_reference_Examination ( Var_src , Var_trg ) <=> rel_examinationType_reference_ExaminationResult ( Var_trg , Var_src ) ) ) ) .
61fof ( oppositeReference_medicalrecord_Symptom , axiom , ! [ Var_src , Var_trg ] : ( ( type_Symptom_class ( Var_src ) & type_MedicalRecord_class ( Var_trg ) ) => ( rel_medicalrecord_reference_Symptom ( Var_src , Var_trg ) <=> rel_symptom_reference_MedicalRecord ( Var_trg , Var_src ) ) ) ) .
62fof ( oppositeReference_medicalrecord_ExaminationResult , axiom , ! [ Var_src , Var_trg ] : ( ( type_ExaminationResult_class ( Var_src ) & type_MedicalRecord_class ( Var_trg ) ) => ( rel_medicalrecord_reference_ExaminationResult ( Var_src , Var_trg ) <=> rel_examinationResults_reference_MedicalRecord ( Var_trg , Var_src ) ) ) ) .
63fof ( oppositeReference_healthProblems_MedicalRecord , axiom , ! [ Var_src , Var_trg ] : ( ( type_MedicalRecord_class ( Var_src ) & type_HealthProblem_class ( Var_trg ) ) => ( rel_healthProblems_reference_MedicalRecord ( Var_src , Var_trg ) <=> rel_record_reference_HealthProblem ( Var_trg , Var_src ) ) ) ) .
64fof ( errorpattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom , axiom , ! [ Var_mr ] : ( type_MedicalRecord_class ( Var_mr ) => ~ rel_pattern_ca_mcgill_dp19_queries_treatmentWithoutSymptom ( Var_mr ) ) ) .
65fof ( errorpattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult , axiom , ! [ Var_mr ] : ( type_MedicalRecord_class ( Var_mr ) => ~ rel_pattern_ca_mcgill_dp19_queries_healthProblemsWithoutExaminationResult ( Var_mr ) ) ) .
66fof ( errorpattern_ca_mcgill_dp19_queries_allergyWithoutSymptom , axiom , ! [ Var_mr ] : ( type_MedicalRecord_class ( Var_mr ) => ~ rel_pattern_ca_mcgill_dp19_queries_allergyWithoutSymptom ( Var_mr ) ) ) .
67fof ( errorpattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended , axiom , ! [ Var_mr , Var_med ] : ( ( type_MedicalRecord_class ( Var_mr ) & type_Medicine_class ( Var_med ) ) => ~ rel_pattern_ca_mcgill_dp19_queries_prescribedMedicineNotRecommended ( Var_mr , Var_med ) ) ) .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem
new file mode 100644
index 00000000..751860c5
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/problem.logicproblem
@@ -0,0 +1,39 @@
1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language">
3 <types xsi:type="language_1:TypeDefinition" name="oldRPS" elements="//@elements.0 //@elements.1 //@elements.2"/>
4 <assertions name="assertion1">
5 <value xsi:type="language_1:Forall">
6 <quantifiedVariables name="x">
7 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
8 </quantifiedVariables>
9 <expression xsi:type="language_1:Exists">
10 <quantifiedVariables name="y">
11 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
12 </quantifiedVariables>
13 <expression xsi:type="language_1:And">
14 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
15 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
16 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
17 </operands>
18 <operands xsi:type="language_1:Distinct">
19 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
20 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
21 </operands>
22 <operands xsi:type="language_1:Not">
23 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
24 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
25 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
26 </operand>
27 </operands>
28 </expression>
29 </expression>
30 </value>
31 </assertions>
32 <relations xsi:type="language_1:RelationDeclaration" name="beats2">
33 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
34 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
35 </relations>
36 <elements name="Rock" definedInType="//@types.0"/>
37 <elements name="Paper" definedInType="//@types.0"/>
38 <elements name="Scissor" definedInType="//@types.0"/>
39</language:LogicProblem>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
new file mode 100644
index 00000000..a4afb86e
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/VampireTest/vampireProblem.tptp
@@ -0,0 +1 @@
% This is an initial Test Comment fof ( typeDef_oldRPS , axiom , ! [ A ] : ( type_oldRPS ( A ) <=> ( A = "aRock" | ( A = "aPaper" | A = "aScissor" ) ) ) ) . fof ( hierarchyHandler , axiom , ! [ A ] : ( object ( A ) <=> type_oldRPS ( A ) ) ) . fof ( compliance_beats2 , axiom , ! [ Var_0 , Var_1 ] : ( rel_beats2 ( Var_0 , Var_1 ) => ( type_oldRPS ( Var_0 ) & type_oldRPS ( Var_1 ) ) ) ) . fof ( assertion1 , axiom , ! [ Var_x ] : ( type_oldRPS ( Var_x ) => ? [ Var_y ] : ( type_oldRPS ( Var_y ) & ( rel_beats2 ( Var_x , Var_y ) & ( Var_x != Var_y & ~ rel_beats2 ( Var_y , Var_x ) ) ) ) ) ) . \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
new file mode 100644
index 00000000..2f4febdb
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><plugin/>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend
new file mode 100644
index 00000000..54114189
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend
@@ -0,0 +1,105 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import functionalarchitecture.FunctionalarchitecturePackage
6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
8import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
15import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
16import java.util.List
17import org.eclipse.emf.ecore.EAttribute
18import org.eclipse.emf.ecore.EClass
19import org.eclipse.emf.ecore.EEnum
20import org.eclipse.emf.ecore.EEnumLiteral
21import org.eclipse.emf.ecore.EObject
22import org.eclipse.emf.ecore.EReference
23import org.eclipse.emf.ecore.resource.Resource
24import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
25import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns
26import java.util.LinkedHashMap
27import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
28
29class EcoreTest {
30 def static void main(String[] args) {
31 val inputs = new FileSystemWorkspace('''initialModels/''', "")
32 val workspace = new FileSystemWorkspace('''output/FAMTest/''', "")
33 workspace.initAndClear
34
35 println("Input and output workspaces are created")
36
37 val metamodel = loadMetamodel()
38 val partialModel = loadPartialModel(inputs)
39// val queries = loadQueries(metamodel)
40
41 println("DSL loaded")
42
43 val Ecore2Logic ecore2Logic = new Ecore2Logic
44 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
45 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
46 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
47
48 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
49 val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
50// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
51
52 val logicProblem = modelGenerationProblem.output
53// val logicProblem = modelExtensionProblem.output
54// val logicProblem = validModelExtensionProblem.output
55
56
57 println("Problem created")
58
59 var LogicResult solution
60 var LogicReasoner reasoner
61 //*
62 reasoner = new VampireSolver
63 val vampireConfig = new VampireSolverConfiguration => [
64 //add configuration things, in config file first
65 it.writeToFile = true
66 ]
67
68 solution = reasoner.solve(logicProblem, vampireConfig, workspace)
69
70 println("Problem solved")
71
72
73 }
74
75 def private static loadMetamodel() {
76 val pckg = FunctionalarchitecturePackage.eINSTANCE
77 val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList
78 val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList
79 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
80 val List<EReference> references = classes.map[getEReferences].flatten.toList
81 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
82 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
83 }
84
85 def private static loadPartialModel(ReasonerWorkspace inputs) {
86 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
87// inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList
88 inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList
89 }
90
91 def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
92// val i = Patterns.instance
93// val patterns = i.specifications.toList
94// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
95// val derivedFeatures = new LinkedHashMap
96// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
97// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
98// val res = new ViatraQuerySetDescriptor(
99// patterns,
100// wfPatterns,
101// derivedFeatures
102// )
103// return res
104 }
105}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
new file mode 100644
index 00000000..9ae00f8d
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
@@ -0,0 +1,33 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import functionalarchitecture.FunctionalarchitecturePackage
4import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns
5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
6import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
8
9class FAMTest {
10 def static void main(String[] args) {
11 //Workspace setup
12 val inputs = new FileSystemWorkspace('''initialModels/''', "")
13 val workspace = new FileSystemWorkspace('''output/FAMTest/''', "")
14 workspace.initAndClear
15
16 //Logicproblem writing setup
17 val reg = Resource.Factory.Registry.INSTANCE
18 val map = reg.extensionToFactoryMap
19 map.put("logicproblem", new XMIResourceFactoryImpl)
20
21 println("Input and output workspaces are created")
22
23 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
24 val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi")
25 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
26
27 println("DSL loaded")
28
29 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace)
30 }
31
32
33}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend
new file mode 100644
index 00000000..363b9356
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend
@@ -0,0 +1,33 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import functionalarchitecture.FunctionalarchitecturePackage
4import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns
5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
6import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
8
9class FileSystemTest {
10 def static void main(String[] args) {
11 //Workspace setup
12 val inputs = new FileSystemWorkspace('''initialModels/''', "")
13 val workspace = new FileSystemWorkspace('''output/FAMTest/''', "")
14 workspace.initAndClear
15
16 //Logicproblem writing setup
17 val reg = Resource.Factory.Registry.INSTANCE
18 val map = reg.extensionToFactoryMap
19 map.put("logicproblem", new XMIResourceFactoryImpl)
20
21 println("Input and output workspaces are created")
22
23 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
24 val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi")
25 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
26
27 println("DSL loaded")
28
29 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace)
30 }
31
32
33}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
new file mode 100644
index 00000000..2c53d181
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
@@ -0,0 +1,89 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns
6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
8import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
13import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
14import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
16import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
17import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
18import java.util.List
19import org.eclipse.emf.ecore.EAttribute
20import org.eclipse.emf.ecore.EClass
21import org.eclipse.emf.ecore.EEnum
22import org.eclipse.emf.ecore.EEnumLiteral
23import org.eclipse.emf.ecore.EObject
24import org.eclipse.emf.ecore.EPackage
25import org.eclipse.emf.ecore.EReference
26import org.eclipse.emf.ecore.resource.Resource
27import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
28import org.eclipse.viatra.query.runtime.api.IQueryGroup
29
30class GeneralTest {
31 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel, ViatraQuerySetDescriptor queries, FileSystemWorkspace workspace) {
32 val Ecore2Logic ecore2Logic = new Ecore2Logic
33 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
34 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
35 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
36
37 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
38 var problem = instanceModel2Logic.transform(modelGenerationProblem,partialModel).output
39 problem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration).output
40
41 workspace.writeModel(problem, "Fam.logicproblem")
42
43 println("Problem created")
44
45 var LogicResult solution
46 var LogicReasoner reasoner
47 //*
48 reasoner = new VampireSolver
49 val vampireConfig = new VampireSolverConfiguration => [
50 //add configuration things, in config file first
51 it.writeToFile = true
52 ]
53
54 solution = reasoner.solve(problem, vampireConfig, workspace)
55
56 println("Problem solved")
57 }
58
59 def static loadMetamodel(EPackage pckg) {
60 val List<EClass> classes = pckg.getEClassifiers.filter(EClass).toList
61 val List<EEnum> enums = pckg.getEClassifiers.filter(EEnum).toList
62 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
63 val List<EReference> references = classes.map[getEReferences].flatten.toList
64 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
65 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
66 }
67
68 def static loadPartialModel(ReasonerWorkspace inputs, String path) {
69 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
70 inputs.readModel(EObject,path).eResource.contents
71// inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList
72 }
73
74 def static loadQueries(EcoreMetamodelDescriptor metamodel, IQueryGroup i) {
75 val patterns = i.specifications.toList
76 val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
77 val derivedFeatures = emptyMap
78 //NO DERIVED FEATURES
79// val derivedFeatures = new LinkedHashMap
80// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
81// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
82 val res = new ViatraQuerySetDescriptor(
83 patterns,
84 wfPatterns,
85 derivedFeatures
86 )
87 return res
88 }
89} \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
new file mode 100644
index 00000000..e4f6f87a
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
@@ -0,0 +1,34 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse
2
3import functionalarchitecture.FunctionalarchitecturePackage
4import hu.bme.mit.inf.dslreasoner.domains.y
5import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
6import org.eclipse.emf.ecore.resource.Resource
7import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
8import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage
9
10class YakinduTest {
11 def static void main(String[] args) {
12 //Workspace setup
13 val inputs = new FileSystemWorkspace('''initialModels/''', "")
14 val workspace = new FileSystemWorkspace('''output/YakinduTest/''', "")
15 workspace.initAndClear
16
17 //Logicproblem writing setup
18 val reg = Resource.Factory.Registry.INSTANCE
19 val map = reg.extensionToFactoryMap
20 map.put("logicproblem", new XMIResourceFactoryImpl)
21
22 println("Input and output workspaces are created")
23
24 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE)
25 val partialModel = GeneralTest.loadPartialModel(inputs, "Yakindu.xmi")
26 val queries = GeneralTest.loadQueries(metamodel,
27
28 println("DSL loaded")
29
30 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace)
31 }
32
33
34}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
index a8b4dcfb..a8b4dcfb 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
index ccc17617..15f9e1fe 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
@@ -22,11 +22,12 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
22class MedicalSystem { 22class MedicalSystem {
23 def static void main(String[] args) { 23 def static void main(String[] args) {
24 init() 24 init()
25 val workspace = new FileSystemWorkspace('''outputModels/''',"") 25 val workspace = new FileSystemWorkspace('''output/MedicalSystem/''',"")
26 workspace.initAndClear 26 workspace.initAndClear
27 val root = load() 27 val root = load()
28 println("Problem Loaded") 28 println("Problem Loaded")
29 29
30
30// val rs = new ResourceSetImpl 31// val rs = new ResourceSetImpl
31// val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp")) 32// val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp"))
32// 33//
@@ -40,7 +41,7 @@ class MedicalSystem {
40 reasoner = new VampireSolver 41 reasoner = new VampireSolver
41 val vampireConfig = new VampireSolverConfiguration => [ 42 val vampireConfig = new VampireSolverConfiguration => [
42 //add configuration things, in config file first 43 //add configuration things, in config file first
43 it.writeToFile = false 44 it.writeToFile = true
44 ] 45 ]
45 46
46 solution = reasoner.solve(root, vampireConfig, workspace) 47 solution = reasoner.solve(root, vampireConfig, workspace)
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
index 9d2235f0..f99f0a40 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
@@ -66,7 +66,7 @@
66// println("Problem created") 66// println("Problem created")
67// var LogicResult solution 67// var LogicResult solution
68// var LogicReasoner reasoner 68// var LogicReasoner reasoner
69// //* 69// /*
70// reasoner = new ViatraReasoner 70// reasoner = new ViatraReasoner
71// val viatraConfig = new ViatraReasonerConfiguration => [ 71// val viatraConfig = new ViatraReasonerConfiguration => [
72// it.typeScopes.maxNewElements = 40 72// it.typeScopes.maxNewElements = 40
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
index 3d36bbf7..4fc81ad8 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
@@ -17,6 +17,7 @@ import org.eclipse.emf.common.util.URI
17import org.eclipse.emf.ecore.resource.Resource 17import org.eclipse.emf.ecore.resource.Resource
18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl 18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20import java.io.File
20 21
21class VampireTest { 22class VampireTest {
22 23
@@ -39,15 +40,11 @@ class VampireTest {
39 map.put("logicproblem", new XMIResourceFactoryImpl) 40 map.put("logicproblem", new XMIResourceFactoryImpl)
40 VampireLanguageStandaloneSetup.doSetup 41 VampireLanguageStandaloneSetup.doSetup
41 42
42 val workspace = new FileSystemWorkspace('''output/models/''',"") 43 val workspace = new FileSystemWorkspace('''output/VampireTest''',"")
43 workspace.initAndClear 44 workspace.initAndClear
44 45
45 // Load and create top level elements 46 //Storing the logicProblem
46 // Load source model 47 val filename = "problem.logicproblem"
47 val rs = new ResourceSetImpl
48 val logicURI = URI.createFileURI("output/files/logProb.logicproblem")
49 val logRes = rs.createResource(logicURI)
50
51 var LogicProblem problem = builder.createProblem 48 var LogicProblem problem = builder.createProblem
52 49
53 /* 50 /*
@@ -56,8 +53,7 @@ class VampireTest {
56 rockPaperScisors(problem) 53 rockPaperScisors(problem)
57 //*/ 54 //*/
58 55
59 logRes.contents.add(problem) 56 workspace.writeModel(problem, filename)
60 logRes.save(Collections.EMPTY_MAP)
61 57
62 //problem.add(Assertion( Y && X <=> X) ) 58 //problem.add(Assertion( Y && X <=> X) )
63 59
@@ -69,7 +65,7 @@ class VampireTest {
69 reasoner = new VampireSolver 65 reasoner = new VampireSolver
70 val vampireConfig = new VampireSolverConfiguration => [ 66 val vampireConfig = new VampireSolverConfiguration => [
71 //add configuration things, in config file first 67 //add configuration things, in config file first
72 it.writeToFile = false 68 it.writeToFile = true
73 ] 69 ]
74 70
75 solution = reasoner.solve(problem, vampireConfig, workspace) 71 solution = reasoner.solve(problem, vampireConfig, workspace)
@@ -88,6 +84,10 @@ class VampireTest {
88 84
89 } 85 }
90 86
87 def name() {
88 return this.class.simpleName
89 }
90
91 static def deMorgan(LogicProblem problem) { 91 static def deMorgan(LogicProblem problem) {
92 92
93 93
@@ -144,7 +144,10 @@ class VampireTest {
144 //x.range 144 //x.range
145 Exists[ 145 Exists[
146 val y = addVar("y",oldRPS) 146 val y = addVar("y",oldRPS)
147 beats2.call(x,y) 147 And(beats2.call(x,y),
148 x != y,
149 Not(beats2.call(y, x))
150 )
148 ] 151 ]
149 ])) 152 ]))
150 //*/ 153 //*/
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
new file mode 100644
index 00000000..cf5c79b4
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
new file mode 100644
index 00000000..33fae225
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
new file mode 100644
index 00000000..56144b8f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
new file mode 100644
index 00000000..29d89e94
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
new file mode 100644
index 00000000..c0d35b2f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.gitignore
new file mode 100644
index 00000000..1b426999
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.gitignore
@@ -0,0 +1,6 @@
1/.FAMTest.java._trace
2/.YakinduTest.java._trace
3/.EcoreTest.java._trace
4/.fileSystemTest.java._trace
5/.FileSystemTest.java._trace
6/.GeneralTest.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java
new file mode 100644
index 00000000..f3dc8572
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java
@@ -0,0 +1,116 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
5import com.google.common.collect.Iterables;
6import functionalarchitecture.FunctionalarchitecturePackage;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
13import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
15import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
16import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
18import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
19import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
20import java.util.Collections;
21import java.util.List;
22import java.util.Map;
23import org.eclipse.emf.common.util.EList;
24import org.eclipse.emf.ecore.EAttribute;
25import org.eclipse.emf.ecore.EClass;
26import org.eclipse.emf.ecore.EEnum;
27import org.eclipse.emf.ecore.EEnumLiteral;
28import org.eclipse.emf.ecore.EObject;
29import org.eclipse.emf.ecore.EReference;
30import org.eclipse.emf.ecore.resource.Resource;
31import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
32import org.eclipse.xtend2.lib.StringConcatenation;
33import org.eclipse.xtext.xbase.lib.CollectionLiterals;
34import org.eclipse.xtext.xbase.lib.Exceptions;
35import org.eclipse.xtext.xbase.lib.Functions.Function1;
36import org.eclipse.xtext.xbase.lib.InputOutput;
37import org.eclipse.xtext.xbase.lib.IterableExtensions;
38import org.eclipse.xtext.xbase.lib.IteratorExtensions;
39import org.eclipse.xtext.xbase.lib.ListExtensions;
40import org.eclipse.xtext.xbase.lib.ObjectExtensions;
41import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
42
43@SuppressWarnings("all")
44public class EcoreTest {
45 public static void main(final String[] args) {
46 try {
47 StringConcatenation _builder = new StringConcatenation();
48 _builder.append("initialModels/");
49 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
50 StringConcatenation _builder_1 = new StringConcatenation();
51 _builder_1.append("output/FAMTest/");
52 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), "");
53 workspace.initAndClear();
54 InputOutput.<String>println("Input and output workspaces are created");
55 final EcoreMetamodelDescriptor metamodel = EcoreTest.loadMetamodel();
56 final List<EObject> partialModel = EcoreTest.loadPartialModel(inputs);
57 InputOutput.<String>println("DSL loaded");
58 final Ecore2Logic ecore2Logic = new Ecore2Logic();
59 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic);
60 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic);
61 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic();
62 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
63 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
64 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel);
65 final LogicProblem logicProblem = modelGenerationProblem.getOutput();
66 InputOutput.<String>println("Problem created");
67 LogicResult solution = null;
68 LogicReasoner reasoner = null;
69 VampireSolver _vampireSolver = new VampireSolver();
70 reasoner = _vampireSolver;
71 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
72 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
73 it.writeToFile = true;
74 };
75 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
76 solution = reasoner.solve(logicProblem, vampireConfig, workspace);
77 InputOutput.<String>println("Problem solved");
78 } catch (Throwable _e) {
79 throw Exceptions.sneakyThrow(_e);
80 }
81 }
82
83 private static EcoreMetamodelDescriptor loadMetamodel() {
84 final FunctionalarchitecturePackage pckg = FunctionalarchitecturePackage.eINSTANCE;
85 final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class));
86 final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class));
87 final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> {
88 return it.getELiterals();
89 };
90 final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function)));
91 final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> {
92 return it.getEReferences();
93 };
94 final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1)));
95 final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> {
96 return it.getEAttributes();
97 };
98 final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2)));
99 return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes);
100 }
101
102 private static List<EObject> loadPartialModel(final ReasonerWorkspace inputs) {
103 List<EObject> _xblockexpression = null;
104 {
105 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
106 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
107 _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
108 _xblockexpression = IteratorExtensions.<EObject>toList(inputs.<EObject>readModel(EObject.class, "FamInstance.xmi").eResource().getAllContents());
109 }
110 return _xblockexpression;
111 }
112
113 private static Object loadQueries(final EcoreMetamodelDescriptor metamodel) {
114 return null;
115 }
116}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
new file mode 100644
index 00000000..92803b7f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
@@ -0,0 +1,38 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2
3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import functionalarchitecture.FunctionalarchitecturePackage;
5import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
7import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
8import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
9import java.util.Map;
10import org.eclipse.emf.common.util.EList;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.emf.ecore.resource.Resource;
13import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
14import org.eclipse.xtend2.lib.StringConcatenation;
15import org.eclipse.xtext.xbase.lib.InputOutput;
16
17@SuppressWarnings("all")
18public class FAMTest {
19 public static void main(final String[] args) {
20 StringConcatenation _builder = new StringConcatenation();
21 _builder.append("initialModels/");
22 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
23 StringConcatenation _builder_1 = new StringConcatenation();
24 _builder_1.append("output/FAMTest/");
25 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), "");
26 workspace.initAndClear();
27 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
28 final Map<String, Object> map = reg.getExtensionToFactoryMap();
29 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
30 map.put("logicproblem", _xMIResourceFactoryImpl);
31 InputOutput.<String>println("Input and output workspaces are created");
32 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE);
33 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi");
34 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance());
35 InputOutput.<String>println("DSL loaded");
36 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace);
37 }
38}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java
new file mode 100644
index 00000000..5994b4b4
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java
@@ -0,0 +1,38 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2
3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import functionalarchitecture.FunctionalarchitecturePackage;
5import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
7import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
8import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
9import java.util.Map;
10import org.eclipse.emf.common.util.EList;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.emf.ecore.resource.Resource;
13import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
14import org.eclipse.xtend2.lib.StringConcatenation;
15import org.eclipse.xtext.xbase.lib.InputOutput;
16
17@SuppressWarnings("all")
18public class FileSystemTest {
19 public static void main(final String[] args) {
20 StringConcatenation _builder = new StringConcatenation();
21 _builder.append("initialModels/");
22 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
23 StringConcatenation _builder_1 = new StringConcatenation();
24 _builder_1.append("output/FAMTest/");
25 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), "");
26 workspace.initAndClear();
27 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
28 final Map<String, Object> map = reg.getExtensionToFactoryMap();
29 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
30 map.put("logicproblem", _xMIResourceFactoryImpl);
31 InputOutput.<String>println("Input and output workspaces are created");
32 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE);
33 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi");
34 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance());
35 InputOutput.<String>println("DSL loaded");
36 GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace);
37 }
38}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
new file mode 100644
index 00000000..92cf666c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.java
@@ -0,0 +1,127 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
5import com.google.common.base.Objects;
6import com.google.common.collect.Iterables;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
13import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
15import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
16import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
17import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration;
18import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
20import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
21import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
22import java.util.Collections;
23import java.util.List;
24import java.util.Map;
25import java.util.Set;
26import org.eclipse.emf.common.util.EList;
27import org.eclipse.emf.ecore.EAttribute;
28import org.eclipse.emf.ecore.EClass;
29import org.eclipse.emf.ecore.EEnum;
30import org.eclipse.emf.ecore.EEnumLiteral;
31import org.eclipse.emf.ecore.EObject;
32import org.eclipse.emf.ecore.EPackage;
33import org.eclipse.emf.ecore.EReference;
34import org.eclipse.emf.ecore.EStructuralFeature;
35import org.eclipse.emf.ecore.resource.Resource;
36import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
37import org.eclipse.viatra.query.runtime.api.IQueryGroup;
38import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
39import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
40import org.eclipse.xtext.xbase.lib.CollectionLiterals;
41import org.eclipse.xtext.xbase.lib.Exceptions;
42import org.eclipse.xtext.xbase.lib.Functions.Function1;
43import org.eclipse.xtext.xbase.lib.InputOutput;
44import org.eclipse.xtext.xbase.lib.IterableExtensions;
45import org.eclipse.xtext.xbase.lib.ListExtensions;
46import org.eclipse.xtext.xbase.lib.ObjectExtensions;
47import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
48
49@SuppressWarnings("all")
50public class GeneralTest {
51 public static String createAndSolveProblem(final EcoreMetamodelDescriptor metamodel, final List<EObject> partialModel, final ViatraQuerySetDescriptor queries, final FileSystemWorkspace workspace) {
52 try {
53 String _xblockexpression = null;
54 {
55 final Ecore2Logic ecore2Logic = new Ecore2Logic();
56 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic);
57 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic);
58 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic();
59 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
60 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
61 LogicProblem problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput();
62 Viatra2LogicConfiguration _viatra2LogicConfiguration = new Viatra2LogicConfiguration();
63 problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, _viatra2LogicConfiguration).getOutput();
64 workspace.writeModel(problem, "Fam.logicproblem");
65 InputOutput.<String>println("Problem created");
66 LogicResult solution = null;
67 LogicReasoner reasoner = null;
68 VampireSolver _vampireSolver = new VampireSolver();
69 reasoner = _vampireSolver;
70 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
71 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
72 it.writeToFile = true;
73 };
74 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
75 solution = reasoner.solve(problem, vampireConfig, workspace);
76 _xblockexpression = InputOutput.<String>println("Problem solved");
77 }
78 return _xblockexpression;
79 } catch (Throwable _e) {
80 throw Exceptions.sneakyThrow(_e);
81 }
82 }
83
84 public static EcoreMetamodelDescriptor loadMetamodel(final EPackage pckg) {
85 final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class));
86 final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class));
87 final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> {
88 return it.getELiterals();
89 };
90 final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function)));
91 final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> {
92 return it.getEReferences();
93 };
94 final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1)));
95 final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> {
96 return it.getEAttributes();
97 };
98 final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2)));
99 return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes);
100 }
101
102 public static EList<EObject> loadPartialModel(final ReasonerWorkspace inputs, final String path) {
103 EList<EObject> _xblockexpression = null;
104 {
105 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
106 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
107 _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
108 _xblockexpression = inputs.<EObject>readModel(EObject.class, path).eResource().getContents();
109 }
110 return _xblockexpression;
111 }
112
113 public static ViatraQuerySetDescriptor loadQueries(final EcoreMetamodelDescriptor metamodel, final IQueryGroup i) {
114 final List<IQuerySpecification<?>> patterns = IterableExtensions.<IQuerySpecification<?>>toList(i.getSpecifications());
115 final Function1<IQuerySpecification<?>, Boolean> _function = (IQuerySpecification<?> it) -> {
116 final Function1<PAnnotation, Boolean> _function_1 = (PAnnotation it_1) -> {
117 String _name = it_1.getName();
118 return Boolean.valueOf(Objects.equal(_name, "Constraint"));
119 };
120 return Boolean.valueOf(IterableExtensions.<PAnnotation>exists(it.getAllAnnotations(), _function_1));
121 };
122 final Set<IQuerySpecification<?>> wfPatterns = IterableExtensions.<IQuerySpecification<?>>toSet(IterableExtensions.<IQuerySpecification<?>>filter(patterns, _function));
123 final Map<IQuerySpecification<?>, EStructuralFeature> derivedFeatures = CollectionLiterals.<IQuerySpecification<?>, EStructuralFeature>emptyMap();
124 final ViatraQuerySetDescriptor res = new ViatraQuerySetDescriptor(patterns, wfPatterns, derivedFeatures);
125 return res;
126 }
127}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
new file mode 100644
index 00000000..fa4ef6b9
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
@@ -0,0 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2
3@SuppressWarnings("all")
4public class YakinduTest {
5 public static void main(final String[] args) {
6 throw new Error("Unresolved compilation problems:"
7 + "\nmissing \')\' at \'GeneralTest\'"
8 + "\nType mismatch: cannot convert from String to IQueryGroup");
9 }
10}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore
new file mode 100644
index 00000000..f3e21798
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icseTest/.gitignore
@@ -0,0 +1 @@
/.FAMTest.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
index 01664d90..fe447779 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
index 6a36d4d4..8e57f5e7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
index 93a2e4f4..9d12dab4 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
index 15b5afc4..2760bac4 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
@@ -2,3 +2,11 @@
2/.SimpleRun.java._trace 2/.SimpleRun.java._trace
3/.DslTest.java._trace 3/.DslTest.java._trace
4/.MedicalSystem.java._trace 4/.MedicalSystem.java._trace
5/.DslTest.xtendbin
6/.MedicalSystem.xtendbin
7/.SimpleRun.xtendbin
8/.VampireTest.xtendbin
9/DslTest.java
10/MedicalSystem.java
11/VampireTest.java
12/.FAMTest.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java
index 7b4849e1..7b4849e1 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
index d4f53d65..ece0a9bb 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
@@ -29,7 +29,7 @@ public class MedicalSystem {
29 try { 29 try {
30 MedicalSystem.init(); 30 MedicalSystem.init();
31 StringConcatenation _builder = new StringConcatenation(); 31 StringConcatenation _builder = new StringConcatenation();
32 _builder.append("outputModels/"); 32 _builder.append("output/MedicalSystem/");
33 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); 33 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), "");
34 workspace.initAndClear(); 34 workspace.initAndClear();
35 final LogicProblem root = MedicalSystem.load(); 35 final LogicProblem root = MedicalSystem.load();
@@ -40,7 +40,7 @@ public class MedicalSystem {
40 reasoner = _vampireSolver; 40 reasoner = _vampireSolver;
41 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 41 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
42 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 42 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
43 it.writeToFile = false; 43 it.writeToFile = true;
44 }; 44 };
45 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 45 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
46 solution = reasoner.solve(root, vampireConfig, workspace); 46 solution = reasoner.solve(root, vampireConfig, workspace);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
index d02174f7..74f117f2 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
@@ -11,6 +11,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And;
11import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion; 11import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion;
12import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration; 12import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration;
13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; 13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
14import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Distinct;
14import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists; 15import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists;
15import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff; 16import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff;
16import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; 17import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not;
@@ -25,12 +26,9 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
25import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; 26import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
26import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage; 27import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage;
27import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; 28import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
28import java.util.Collections;
29import java.util.Map; 29import java.util.Map;
30import org.eclipse.emf.common.util.EList; 30import org.eclipse.emf.common.util.EList;
31import org.eclipse.emf.common.util.URI;
32import org.eclipse.emf.ecore.resource.Resource; 31import org.eclipse.emf.ecore.resource.Resource;
33import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
34import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 32import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
35import org.eclipse.xtend2.lib.StringConcatenation; 33import org.eclipse.xtend2.lib.StringConcatenation;
36import org.eclipse.xtext.xbase.lib.Exceptions; 34import org.eclipse.xtext.xbase.lib.Exceptions;
@@ -56,16 +54,13 @@ public class VampireTest {
56 map.put("logicproblem", _xMIResourceFactoryImpl); 54 map.put("logicproblem", _xMIResourceFactoryImpl);
57 VampireLanguageStandaloneSetup.doSetup(); 55 VampireLanguageStandaloneSetup.doSetup();
58 StringConcatenation _builder = new StringConcatenation(); 56 StringConcatenation _builder = new StringConcatenation();
59 _builder.append("output/models/"); 57 _builder.append("output/VampireTest");
60 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), ""); 58 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), "");
61 workspace.initAndClear(); 59 workspace.initAndClear();
62 final ResourceSetImpl rs = new ResourceSetImpl(); 60 final String filename = "problem.logicproblem";
63 final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem");
64 final Resource logRes = rs.createResource(logicURI);
65 LogicProblem problem = VampireTest.builder.createProblem(); 61 LogicProblem problem = VampireTest.builder.createProblem();
66 VampireTest.rockPaperScisors(problem); 62 VampireTest.rockPaperScisors(problem);
67 logRes.getContents().add(problem); 63 workspace.writeModel(problem, filename);
68 logRes.save(Collections.EMPTY_MAP);
69 InputOutput.<String>println("Problem Created"); 64 InputOutput.<String>println("Problem Created");
70 LogicResult solution = null; 65 LogicResult solution = null;
71 LogicReasoner reasoner = null; 66 LogicReasoner reasoner = null;
@@ -73,7 +68,7 @@ public class VampireTest {
73 reasoner = _vampireSolver; 68 reasoner = _vampireSolver;
74 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 69 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
75 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 70 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
76 it.writeToFile = false; 71 it.writeToFile = true;
77 }; 72 };
78 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 73 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
79 solution = reasoner.solve(problem, vampireConfig, workspace); 74 solution = reasoner.solve(problem, vampireConfig, workspace);
@@ -83,6 +78,10 @@ public class VampireTest {
83 } 78 }
84 } 79 }
85 80
81 public String name() {
82 return this.getClass().getSimpleName();
83 }
84
86 public static Assertion deMorgan(final LogicProblem problem) { 85 public static Assertion deMorgan(final LogicProblem problem) {
87 Assertion _xblockexpression = null; 86 Assertion _xblockexpression = null;
88 { 87 {
@@ -120,10 +119,13 @@ public class VampireTest {
120 { 119 {
121 final Variable x = it.addVar("x", oldRPS); 120 final Variable x = it.addVar("x", oldRPS);
122 final Function1<VariableContext, TermDescription> _function_1 = (VariableContext it_1) -> { 121 final Function1<VariableContext, TermDescription> _function_1 = (VariableContext it_1) -> {
123 SymbolicValue _xblockexpression_2 = null; 122 And _xblockexpression_2 = null;
124 { 123 {
125 final Variable y = it_1.addVar("y", oldRPS); 124 final Variable y = it_1.addVar("y", oldRPS);
126 _xblockexpression_2 = VampireTest.builder.call(beats2, x, y); 125 SymbolicValue _call = VampireTest.builder.call(beats2, x, y);
126 Distinct _notEquals = VampireTest.builder.operator_notEquals(x, y);
127 _xblockexpression_2 = VampireTest.builder.And(_call, _notEquals,
128 VampireTest.builder.Not(VampireTest.builder.call(beats2, y, x)));
127 } 129 }
128 return _xblockexpression_2; 130 return _xblockexpression_2;
129 }; 131 };