aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.vampire.test
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project34
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem998
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem962
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF31
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi3
-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.xmi10
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi3
-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/output/files/logProb.logicproblem27
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp38
-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.xtend103
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend77
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend168
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend156
-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/.DslTest.xtendbinbin0 -> 5966 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin0 -> 4870 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin0 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin0 -> 6292 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore12
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java111
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java78
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java142
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore2
55 files changed, 4782 insertions, 0 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath
new file mode 100644
index 00000000..1c96fe2f
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath
@@ -0,0 +1,8 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
4 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
5 <classpathentry kind="src" path="src"/>
6 <classpathentry kind="src" path="xtend-gen"/>
7 <classpathentry kind="output" path="bin"/>
8</classpath>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.gitignore
@@ -0,0 +1 @@
/bin/
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project
new file mode 100644
index 00000000..eb3347d0
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.project
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>ca.mcgill.ecse.dslreasoner.vampire.test</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.jdt.core.javabuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.pde.ManifestBuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.pde.SchemaBuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 </buildSpec>
29 <natures>
30 <nature>org.eclipse.pde.PluginNature</nature>
31 <nature>org.eclipse.jdt.core.javanature</nature>
32 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
33 </natures>
34</projectDescription>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..295926d9
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4org.eclipse.jdt.core.compiler.compliance=1.8
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7org.eclipse.jdt.core.compiler.source=1.8
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem
new file mode 100644
index 00000000..6c5f1457
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/medicalSystem.logicproblem
@@ -0,0 +1,998 @@
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="Patient class"/>
4 <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class" subtypes="//@types.14 //@types.15" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="Examination class"/>
6 <types xsi:type="language_1:TypeDeclaration" name="Symptom class"/>
7 <types xsi:type="language_1:TypeDeclaration" name="ExaminationResult class"/>
8 <types xsi:type="language_1:TypeDeclaration" name="MedicalRecord class"/>
9 <types xsi:type="language_1:TypeDeclaration" name="HealthProblem class" subtypes="//@types.11 //@types.12 //@types.13" isAbstract="true"/>
10 <types xsi:type="language_1:TypeDeclaration" name="Medicine class"/>
11 <types xsi:type="language_1:TypeDeclaration" name="Treatment class" subtypes="//@types.9 //@types.10" isAbstract="true"/>
12 <types xsi:type="language_1:TypeDeclaration" name="Medication class" supertypes="//@types.8"/>
13 <types xsi:type="language_1:TypeDeclaration" name="Immunization class" supertypes="//@types.8"/>
14 <types xsi:type="language_1:TypeDeclaration" name="Allergy class" supertypes="//@types.6"/>
15 <types xsi:type="language_1:TypeDeclaration" name="Disease class" supertypes="//@types.6"/>
16 <types xsi:type="language_1:TypeDeclaration" name="Injury class" supertypes="//@types.6"/>
17 <types xsi:type="language_1:TypeDefinition" name="HealthSystem class DefinedPart" supertypes="//@types.1" elements="//@elements.0"/>
18 <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class UndefinedPart" supertypes="//@types.1"/>
19 <assertions name="upperMultiplicity healthsystem Patient" annotations="//@annotations.0">
20 <value xsi:type="language_1:Forall">
21 <quantifiedVariables name="src">
22 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
23 </quantifiedVariables>
24 <quantifiedVariables name="trg 1">
25 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
26 </quantifiedVariables>
27 <quantifiedVariables name="trg 2">
28 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
29 </quantifiedVariables>
30 <expression xsi:type="language_1:Impl">
31 <leftOperand xsi:type="language_1:And">
32 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
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.1"/>
35 </operands>
36 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
37 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
38 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
39 </operands>
40 </leftOperand>
41 <rightOperand xsi:type="language_1:Not">
42 <operand xsi:type="language_1:Distinct">
43 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/>
44 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
45 </operand>
46 </rightOperand>
47 </expression>
48 </value>
49 </assertions>
50 <assertions name="upperMultiplicity examination HealthSystem" annotations="//@annotations.1">
51 <value xsi:type="language_1:Forall">
52 <quantifiedVariables name="src">
53 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
54 </quantifiedVariables>
55 <quantifiedVariables name="trg 1">
56 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
57 </quantifiedVariables>
58 <quantifiedVariables name="trg 2">
59 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
60 </quantifiedVariables>
61 <expression xsi:type="language_1:Impl">
62 <leftOperand xsi:type="language_1:And">
63 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
64 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
65 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
66 </operands>
67 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
68 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
69 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
70 </operands>
71 </leftOperand>
72 <rightOperand xsi:type="language_1:Not">
73 <operand xsi:type="language_1:Distinct">
74 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
75 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
76 </operand>
77 </rightOperand>
78 </expression>
79 </value>
80 </assertions>
81 <assertions name="upperMultiplicity healthsystem Examination" annotations="//@annotations.2">
82 <value xsi:type="language_1:Forall">
83 <quantifiedVariables name="src">
84 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
85 </quantifiedVariables>
86 <quantifiedVariables name="trg 1">
87 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
88 </quantifiedVariables>
89 <quantifiedVariables name="trg 2">
90 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
91 </quantifiedVariables>
92 <expression xsi:type="language_1:Impl">
93 <leftOperand xsi:type="language_1:And">
94 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
95 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
96 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
97 </operands>
98 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
99 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
100 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
101 </operands>
102 </leftOperand>
103 <rightOperand xsi:type="language_1:Not">
104 <operand xsi:type="language_1:Distinct">
105 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
106 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
107 </operand>
108 </rightOperand>
109 </expression>
110 </value>
111 </assertions>
112 <assertions name="lowerMultiplicity medicalrecord Symptom" annotations="//@annotations.3">
113 <value xsi:type="language_1:Forall">
114 <quantifiedVariables name="src">
115 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
116 </quantifiedVariables>
117 <expression xsi:type="language_1:Exists">
118 <quantifiedVariables name="trg 1">
119 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
120 </quantifiedVariables>
121 <expression xsi:type="language_1:And">
122 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
123 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
124 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@expression/@quantifiedVariables.0"/>
125 </operands>
126 </expression>
127 </expression>
128 </value>
129 </assertions>
130 <assertions name="upperMultiplicity medicalrecord Symptom" annotations="//@annotations.4">
131 <value xsi:type="language_1:Forall">
132 <quantifiedVariables name="src">
133 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
134 </quantifiedVariables>
135 <quantifiedVariables name="trg 1">
136 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
137 </quantifiedVariables>
138 <quantifiedVariables name="trg 2">
139 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
140 </quantifiedVariables>
141 <expression xsi:type="language_1:Impl">
142 <leftOperand xsi:type="language_1:And">
143 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
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.1"/>
146 </operands>
147 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
148 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
149 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
150 </operands>
151 </leftOperand>
152 <rightOperand xsi:type="language_1:Not">
153 <operand xsi:type="language_1:Distinct">
154 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
155 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
156 </operand>
157 </rightOperand>
158 </expression>
159 </value>
160 </assertions>
161 <assertions name="lowerMultiplicity examinationType ExaminationResult" annotations="//@annotations.5">
162 <value xsi:type="language_1:Forall">
163 <quantifiedVariables name="src">
164 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
165 </quantifiedVariables>
166 <expression xsi:type="language_1:Exists">
167 <quantifiedVariables name="trg 1">
168 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
169 </quantifiedVariables>
170 <expression xsi:type="language_1:And">
171 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
172 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
173 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@expression/@quantifiedVariables.0"/>
174 </operands>
175 </expression>
176 </expression>
177 </value>
178 </assertions>
179 <assertions name="upperMultiplicity examinationType ExaminationResult" annotations="//@annotations.6">
180 <value xsi:type="language_1:Forall">
181 <quantifiedVariables name="src">
182 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
183 </quantifiedVariables>
184 <quantifiedVariables name="trg 1">
185 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
186 </quantifiedVariables>
187 <quantifiedVariables name="trg 2">
188 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
189 </quantifiedVariables>
190 <expression xsi:type="language_1:Impl">
191 <leftOperand xsi:type="language_1:And">
192 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
193 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
194 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
195 </operands>
196 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
197 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
198 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
199 </operands>
200 </leftOperand>
201 <rightOperand xsi:type="language_1:Not">
202 <operand xsi:type="language_1:Distinct">
203 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
204 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
205 </operand>
206 </rightOperand>
207 </expression>
208 </value>
209 </assertions>
210 <assertions name="lowerMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.7">
211 <value xsi:type="language_1:Forall">
212 <quantifiedVariables name="src">
213 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
214 </quantifiedVariables>
215 <expression xsi:type="language_1:Exists">
216 <quantifiedVariables name="trg 1">
217 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
218 </quantifiedVariables>
219 <expression xsi:type="language_1:And">
220 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
221 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
222 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@expression/@quantifiedVariables.0"/>
223 </operands>
224 </expression>
225 </expression>
226 </value>
227 </assertions>
228 <assertions name="upperMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.8">
229 <value xsi:type="language_1:Forall">
230 <quantifiedVariables name="src">
231 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
232 </quantifiedVariables>
233 <quantifiedVariables name="trg 1">
234 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
235 </quantifiedVariables>
236 <quantifiedVariables name="trg 2">
237 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
238 </quantifiedVariables>
239 <expression xsi:type="language_1:Impl">
240 <leftOperand xsi:type="language_1:And">
241 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
242 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
243 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
244 </operands>
245 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
246 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
247 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
248 </operands>
249 </leftOperand>
250 <rightOperand xsi:type="language_1:Not">
251 <operand xsi:type="language_1:Distinct">
252 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
253 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
254 </operand>
255 </rightOperand>
256 </expression>
257 </value>
258 </assertions>
259 <assertions name="lowerMultiplicity patient MedicalRecord" annotations="//@annotations.9">
260 <value xsi:type="language_1:Forall">
261 <quantifiedVariables name="src">
262 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
263 </quantifiedVariables>
264 <expression xsi:type="language_1:Exists">
265 <quantifiedVariables name="trg 1">
266 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
267 </quantifiedVariables>
268 <expression xsi:type="language_1:And">
269 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
270 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
271 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@expression/@quantifiedVariables.0"/>
272 </operands>
273 </expression>
274 </expression>
275 </value>
276 </assertions>
277 <assertions name="upperMultiplicity patient MedicalRecord" annotations="//@annotations.10">
278 <value xsi:type="language_1:Forall">
279 <quantifiedVariables name="src">
280 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
281 </quantifiedVariables>
282 <quantifiedVariables name="trg 1">
283 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
284 </quantifiedVariables>
285 <quantifiedVariables name="trg 2">
286 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
287 </quantifiedVariables>
288 <expression xsi:type="language_1:Impl">
289 <leftOperand xsi:type="language_1:And">
290 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
291 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
292 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
293 </operands>
294 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
295 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
296 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
297 </operands>
298 </leftOperand>
299 <rightOperand xsi:type="language_1:Not">
300 <operand xsi:type="language_1:Distinct">
301 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
302 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
303 </operand>
304 </rightOperand>
305 </expression>
306 </value>
307 </assertions>
308 <assertions name="lowerMultiplicity record HealthProblem" annotations="//@annotations.11">
309 <value xsi:type="language_1:Forall">
310 <quantifiedVariables name="src">
311 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
312 </quantifiedVariables>
313 <expression xsi:type="language_1:Exists">
314 <quantifiedVariables name="trg 1">
315 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
316 </quantifiedVariables>
317 <expression xsi:type="language_1:And">
318 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
319 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
320 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@expression/@quantifiedVariables.0"/>
321 </operands>
322 </expression>
323 </expression>
324 </value>
325 </assertions>
326 <assertions name="upperMultiplicity record HealthProblem" annotations="//@annotations.12">
327 <value xsi:type="language_1:Forall">
328 <quantifiedVariables name="src">
329 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
330 </quantifiedVariables>
331 <quantifiedVariables name="trg 1">
332 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
333 </quantifiedVariables>
334 <quantifiedVariables name="trg 2">
335 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
336 </quantifiedVariables>
337 <expression xsi:type="language_1:Impl">
338 <leftOperand xsi:type="language_1:And">
339 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
340 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
342 </operands>
343 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
344 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
345 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/>
346 </operands>
347 </leftOperand>
348 <rightOperand xsi:type="language_1:Not">
349 <operand xsi:type="language_1:Distinct">
350 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
351 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/>
352 </operand>
353 </rightOperand>
354 </expression>
355 </value>
356 </assertions>
357 <assertions name="lowerMultiplicity medicine Treatment" annotations="//@annotations.13">
358 <value xsi:type="language_1:Forall">
359 <quantifiedVariables name="src">
360 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
361 </quantifiedVariables>
362 <expression xsi:type="language_1:Exists">
363 <quantifiedVariables name="trg 1">
364 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
365 </quantifiedVariables>
366 <expression xsi:type="language_1:And">
367 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
368 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
369 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@expression/@quantifiedVariables.0"/>
370 </operands>
371 </expression>
372 </expression>
373 </value>
374 </assertions>
375 <assertions name="upperMultiplicity medicine Treatment" annotations="//@annotations.14">
376 <value xsi:type="language_1:Forall">
377 <quantifiedVariables name="src">
378 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
379 </quantifiedVariables>
380 <quantifiedVariables name="trg 1">
381 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
382 </quantifiedVariables>
383 <quantifiedVariables name="trg 2">
384 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
385 </quantifiedVariables>
386 <expression xsi:type="language_1:Impl">
387 <leftOperand xsi:type="language_1:And">
388 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
389 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
390 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
391 </operands>
392 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
393 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
394 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/>
395 </operands>
396 </leftOperand>
397 <rightOperand xsi:type="language_1:Not">
398 <operand xsi:type="language_1:Distinct">
399 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
400 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/>
401 </operand>
402 </rightOperand>
403 </expression>
404 </value>
405 </assertions>
406 <assertions name="oppositeReference records Patient" annotations="//@annotations.15">
407 <value xsi:type="language_1:Forall">
408 <quantifiedVariables name="src">
409 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
410 </quantifiedVariables>
411 <quantifiedVariables name="trg">
412 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
413 </quantifiedVariables>
414 <expression xsi:type="language_1:Iff">
415 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
416 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
417 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
418 </leftOperand>
419 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
420 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
421 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
422 </rightOperand>
423 </expression>
424 </value>
425 </assertions>
426 <assertions name="oppositeReference healthsystem Patient" annotations="//@annotations.16">
427 <value xsi:type="language_1:Forall">
428 <quantifiedVariables name="src">
429 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
430 </quantifiedVariables>
431 <quantifiedVariables name="trg">
432 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
433 </quantifiedVariables>
434 <expression xsi:type="language_1:Iff">
435 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
436 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
437 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
438 </leftOperand>
439 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
440 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
441 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
442 </rightOperand>
443 </expression>
444 </value>
445 </assertions>
446 <assertions name="oppositeReference examination HealthSystem" annotations="//@annotations.17">
447 <value xsi:type="language_1:Forall">
448 <quantifiedVariables name="src">
449 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
450 </quantifiedVariables>
451 <quantifiedVariables name="trg">
452 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
453 </quantifiedVariables>
454 <expression xsi:type="language_1:Iff">
455 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
456 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
457 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
458 </leftOperand>
459 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
460 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
461 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
462 </rightOperand>
463 </expression>
464 </value>
465 </assertions>
466 <assertions name="oppositeReference examinationResult Examination" annotations="//@annotations.18">
467 <value xsi:type="language_1:Forall">
468 <quantifiedVariables name="src">
469 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
470 </quantifiedVariables>
471 <quantifiedVariables name="trg">
472 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
473 </quantifiedVariables>
474 <expression xsi:type="language_1:Iff">
475 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
476 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
477 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
478 </leftOperand>
479 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
480 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
481 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
482 </rightOperand>
483 </expression>
484 </value>
485 </assertions>
486 <assertions name="oppositeReference medicalrecord Symptom" annotations="//@annotations.19">
487 <value xsi:type="language_1:Forall">
488 <quantifiedVariables name="src">
489 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
490 </quantifiedVariables>
491 <quantifiedVariables name="trg">
492 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
493 </quantifiedVariables>
494 <expression xsi:type="language_1:Iff">
495 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
496 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
497 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
498 </leftOperand>
499 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
500 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
501 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
502 </rightOperand>
503 </expression>
504 </value>
505 </assertions>
506 <assertions name="oppositeReference medicalrecord ExaminationResult" annotations="//@annotations.20">
507 <value xsi:type="language_1:Forall">
508 <quantifiedVariables name="src">
509 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
510 </quantifiedVariables>
511 <quantifiedVariables name="trg">
512 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
513 </quantifiedVariables>
514 <expression xsi:type="language_1:Iff">
515 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
516 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/>
517 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/>
518 </leftOperand>
519 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
520 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/>
521 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/>
522 </rightOperand>
523 </expression>
524 </value>
525 </assertions>
526 <assertions name="oppositeReference healthProblems MedicalRecord" annotations="//@annotations.21">
527 <value xsi:type="language_1:Forall">
528 <quantifiedVariables name="src">
529 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
530 </quantifiedVariables>
531 <quantifiedVariables name="trg">
532 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
533 </quantifiedVariables>
534 <expression xsi:type="language_1:Iff">
535 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
536 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/>
537 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/>
538 </leftOperand>
539 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
540 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/>
541 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/>
542 </rightOperand>
543 </expression>
544 </value>
545 </assertions>
546 <assertions name="upperMultiplicity height Patient" annotations="//@annotations.22">
547 <value xsi:type="language_1:Forall">
548 <quantifiedVariables name="src">
549 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
550 </quantifiedVariables>
551 <quantifiedVariables name="trg 1">
552 <range xsi:type="language_1:IntTypeReference"/>
553 </quantifiedVariables>
554 <quantifiedVariables name="trg 2">
555 <range xsi:type="language_1:IntTypeReference"/>
556 </quantifiedVariables>
557 <expression xsi:type="language_1:Impl">
558 <leftOperand xsi:type="language_1:And">
559 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
560 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
561 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/>
562 </operands>
563 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
564 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
565 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.2"/>
566 </operands>
567 </leftOperand>
568 <rightOperand xsi:type="language_1:Not">
569 <operand xsi:type="language_1:Distinct">
570 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.1"/>
571 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.2"/>
572 </operand>
573 </rightOperand>
574 </expression>
575 </value>
576 </assertions>
577 <assertions name="errorpattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.33">
578 <value xsi:type="language_1:Forall">
579 <quantifiedVariables name="mr">
580 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
581 </quantifiedVariables>
582 <expression xsi:type="language_1:Not">
583 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
584 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/>
585 </operand>
586 </expression>
587 </value>
588 </assertions>
589 <assertions name="errorpattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.34">
590 <value xsi:type="language_1:Forall">
591 <quantifiedVariables name="mr">
592 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
593 </quantifiedVariables>
594 <expression xsi:type="language_1:Not">
595 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
596 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/>
597 </operand>
598 </expression>
599 </value>
600 </assertions>
601 <assertions name="errorpattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.35">
602 <value xsi:type="language_1:Forall">
603 <quantifiedVariables name="mr">
604 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
605 </quantifiedVariables>
606 <expression xsi:type="language_1:Not">
607 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26">
608 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/>
609 </operand>
610 </expression>
611 </value>
612 </assertions>
613 <assertions name="errorpattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.36">
614 <value xsi:type="language_1:Forall">
615 <quantifiedVariables name="mr">
616 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
617 </quantifiedVariables>
618 <quantifiedVariables name="med">
619 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
620 </quantifiedVariables>
621 <expression xsi:type="language_1:Not">
622 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28">
623 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.0"/>
624 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.26/@value/@quantifiedVariables.1"/>
625 </operand>
626 </expression>
627 </value>
628 </assertions>
629 <relations xsi:type="language_1:RelationDeclaration" name="records reference Patient">
630 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
631 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
632 </relations>
633 <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Patient">
634 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
635 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
636 </relations>
637 <relations xsi:type="language_1:RelationDeclaration" name="patient reference HealthSystem">
638 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
639 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
640 </relations>
641 <relations xsi:type="language_1:RelationDeclaration" name="examination reference HealthSystem">
642 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
643 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
644 </relations>
645 <relations xsi:type="language_1:RelationDeclaration" name="medicine reference HealthSystem">
646 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
647 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
648 </relations>
649 <relations xsi:type="language_1:RelationDeclaration" name="examinationResult reference Examination">
650 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
651 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
652 </relations>
653 <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Examination">
654 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
655 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
656 </relations>
657 <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference Symptom">
658 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
659 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
660 </relations>
661 <relations xsi:type="language_1:RelationDeclaration" name="examinationType reference ExaminationResult">
662 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
663 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
664 </relations>
665 <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference ExaminationResult">
666 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
667 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
668 </relations>
669 <relations xsi:type="language_1:RelationDeclaration" name="patient reference MedicalRecord">
670 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
671 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
672 </relations>
673 <relations xsi:type="language_1:RelationDeclaration" name="healthProblems reference MedicalRecord">
674 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
675 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
676 </relations>
677 <relations xsi:type="language_1:RelationDeclaration" name="symptom reference MedicalRecord">
678 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
679 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
680 </relations>
681 <relations xsi:type="language_1:RelationDeclaration" name="examinationResults reference MedicalRecord">
682 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
683 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
684 </relations>
685 <relations xsi:type="language_1:RelationDeclaration" name="treatment reference MedicalRecord">
686 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
687 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
688 </relations>
689 <relations xsi:type="language_1:RelationDeclaration" name="record reference HealthProblem">
690 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
691 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
692 </relations>
693 <relations xsi:type="language_1:RelationDeclaration" name="recommended_medicine reference HealthProblem">
694 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
695 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
696 </relations>
697 <relations xsi:type="language_1:RelationDeclaration" name="medicine reference Treatment">
698 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
699 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
700 </relations>
701 <relations xsi:type="language_1:RelationDeclaration" name="height attribute Patient">
702 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
703 <parameters xsi:type="language_1:IntTypeReference"/>
704 </relations>
705 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatment" annotations="//@annotations.23">
706 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
707 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
708 <variables name="parameter mr">
709 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
710 </variables>
711 <variables name="parameter tr">
712 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
713 </variables>
714 <value xsi:type="language_1:Or">
715 <operands xsi:type="language_1:And">
716 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
717 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
718 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
719 </operands>
720 <operands xsi:type="language_1:InstanceOf">
721 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
722 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
723 </operands>
724 </operands>
725 </value>
726 </relations>
727 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries examinationresult" annotations="//@annotations.24">
728 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
729 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
730 <variables name="parameter mr">
731 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
732 </variables>
733 <variables name="parameter er">
734 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
735 </variables>
736 <value xsi:type="language_1:Or">
737 <operands xsi:type="language_1:And">
738 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
739 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
740 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
741 </operands>
742 </operands>
743 </value>
744 </relations>
745 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries symptom" annotations="//@annotations.25">
746 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
747 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
748 <variables name="parameter mr">
749 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
750 </variables>
751 <variables name="parameter sy">
752 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
753 </variables>
754 <value xsi:type="language_1:Or">
755 <operands xsi:type="language_1:And">
756 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
757 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
758 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
759 </operands>
760 </operands>
761 </value>
762 </relations>
763 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.26">
764 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
765 <variables name="parameter mr">
766 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
767 </variables>
768 <value xsi:type="language_1:Or">
769 <operands xsi:type="language_1:Exists">
770 <quantifiedVariables name="variable tr">
771 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
772 </quantifiedVariables>
773 <expression xsi:type="language_1:Forall">
774 <quantifiedVariables name="variable 0">
775 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
776 </quantifiedVariables>
777 <expression xsi:type="language_1:And">
778 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
779 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
780 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
781 </operands>
782 <operands xsi:type="language_1:Not">
783 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
784 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
785 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@expression/@quantifiedVariables.0"/>
786 </operand>
787 </operands>
788 </expression>
789 </expression>
790 </operands>
791 </value>
792 </relations>
793 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblems" annotations="//@annotations.27">
794 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
795 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
796 <variables name="parameter mr">
797 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
798 </variables>
799 <variables name="parameter hp">
800 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
801 </variables>
802 <value xsi:type="language_1:Or">
803 <operands xsi:type="language_1:And">
804 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
805 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
806 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.1"/>
807 </operands>
808 </operands>
809 </value>
810 </relations>
811 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.28">
812 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
813 <variables name="parameter mr">
814 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
815 </variables>
816 <value xsi:type="language_1:Or">
817 <operands xsi:type="language_1:Exists">
818 <quantifiedVariables name="variable hp">
819 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
820 </quantifiedVariables>
821 <expression xsi:type="language_1:Forall">
822 <quantifiedVariables name="variable 0">
823 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
824 </quantifiedVariables>
825 <expression xsi:type="language_1:And">
826 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
827 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
828 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@quantifiedVariables.0"/>
829 </operands>
830 <operands xsi:type="language_1:Not">
831 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20">
832 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
833 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@value/@operands.0/@expression/@quantifiedVariables.0"/>
834 </operand>
835 </operands>
836 </expression>
837 </expression>
838 </operands>
839 </value>
840 </relations>
841 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergy" annotations="//@annotations.29">
842 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
843 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
844 <variables name="parameter mr">
845 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
846 </variables>
847 <variables name="parameter al">
848 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
849 </variables>
850 <value xsi:type="language_1:Or">
851 <operands xsi:type="language_1:And">
852 <operands xsi:type="language_1:InstanceOf">
853 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.1"/>
854 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
855 </operands>
856 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
857 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
858 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.1"/>
859 </operands>
860 </operands>
861 </value>
862 </relations>
863 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.30">
864 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
865 <variables name="parameter mr">
866 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
867 </variables>
868 <value xsi:type="language_1:Or">
869 <operands xsi:type="language_1:Exists">
870 <quantifiedVariables name="variable al">
871 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
872 </quantifiedVariables>
873 <expression xsi:type="language_1:Forall">
874 <quantifiedVariables name="variable 0">
875 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
876 </quantifiedVariables>
877 <expression xsi:type="language_1:And">
878 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25">
879 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
880 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
881 </operands>
882 <operands xsi:type="language_1:Not">
883 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
884 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
885 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@expression/@quantifiedVariables.0"/>
886 </operand>
887 </operands>
888 </expression>
889 </expression>
890 </operands>
891 </value>
892 </relations>
893 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries recommended" annotations="//@annotations.31">
894 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
895 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
896 <variables name="parameter hp">
897 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
898 </variables>
899 <variables name="parameter med">
900 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
901 </variables>
902 <value xsi:type="language_1:Or">
903 <operands xsi:type="language_1:And">
904 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16">
905 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/>
906 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/>
907 </operands>
908 <operands xsi:type="language_1:InstanceOf">
909 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/>
910 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
911 </operands>
912 </operands>
913 </value>
914 </relations>
915 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.32">
916 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
917 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
918 <variables name="parameter mr">
919 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
920 </variables>
921 <variables name="parameter med">
922 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
923 </variables>
924 <value xsi:type="language_1:Or">
925 <operands xsi:type="language_1:Exists">
926 <quantifiedVariables name="variable hp">
927 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
928 </quantifiedVariables>
929 <quantifiedVariables name="variable tr">
930 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
931 </quantifiedVariables>
932 <expression xsi:type="language_1:And">
933 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
934 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/>
935 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/>
936 </operands>
937 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
938 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.0"/>
939 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.1"/>
940 </operands>
941 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
942 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.1"/>
943 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.1"/>
944 </operands>
945 <operands xsi:type="language_1:InstanceOf">
946 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.1"/>
947 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
948 </operands>
949 <operands xsi:type="language_1:Not">
950 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27">
951 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@value/@operands.0/@quantifiedVariables.0"/>
952 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.28/@variables.1"/>
953 </operand>
954 </operands>
955 </expression>
956 </operands>
957 </value>
958 </relations>
959 <elements name="o 1" definedInType="//@types.14"/>
960 <containmentHierarchies typesOrderedInHierarchy="//@types.0 //@types.10 //@types.13 //@types.7 //@types.8 //@types.11 //@types.5 //@types.4 //@types.3 //@types.6 //@types.9 //@types.12 //@types.1 //@types.2 //@types.14 //@types.15" containmentRelations="//@relations.0 //@relations.2 //@relations.3 //@relations.4 //@relations.11 //@relations.12 //@relations.13 //@relations.14"/>
961 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.1" upper="1"/>
962 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/>
963 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.6" upper="1"/>
964 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.3" relation="//@relations.7" lower="1"/>
965 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.7" upper="1"/>
966 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.5" relation="//@relations.8" lower="1"/>
967 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.8" upper="1"/>
968 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.7" relation="//@relations.9" lower="1"/>
969 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/>
970 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.9" relation="//@relations.10" lower="1"/>
971 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.10" upper="1"/>
972 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.11" relation="//@relations.15" lower="1"/>
973 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.12" relation="//@relations.15" upper="1"/>
974 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.13" relation="//@relations.17" lower="1"/>
975 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.14" relation="//@relations.17" upper="1"/>
976 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.0" inverseB="//@relations.10"/>
977 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.1" inverseB="//@relations.2"/>
978 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.17" inverseA="//@relations.3" inverseB="//@relations.6"/>
979 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.18" inverseA="//@relations.5" inverseB="//@relations.8"/>
980 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.19" inverseA="//@relations.7" inverseB="//@relations.12"/>
981 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.20" inverseA="//@relations.9" inverseB="//@relations.13"/>
982 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.21" inverseA="//@relations.11" inverseB="//@relations.15"/>
983 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.22" relation="//@relations.18" upper="1"/>
984 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatment"/>
985 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="ca.mcgill.dp19.queries.examinationresult"/>
986 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="ca.mcgill.dp19.queries.symptom"/>
987 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatmentWithoutSymptom"/>
988 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblems"/>
989 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblemsWithoutExaminationResult"/>
990 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergy"/>
991 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergyWithoutSymptom"/>
992 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="ca.mcgill.dp19.queries.recommended"/>
993 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.28" patternFullyQualifiedName="ca.mcgill.dp19.queries.prescribedMedicineNotRecommended"/>
994 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.26"/>
995 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.28"/>
996 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.30"/>
997 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.26" query="//@annotations.32"/>
998</language:LogicProblem>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem
new file mode 100644
index 00000000..a8e595b4
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/InputLPs/newMedicalSystem.logicproblem
@@ -0,0 +1,962 @@
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="Patient class"/>
4 <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class" subtypes="//@types.14 //@types.15" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="Examination class"/>
6 <types xsi:type="language_1:TypeDeclaration" name="Symptom class"/>
7 <types xsi:type="language_1:TypeDeclaration" name="ExaminationResult class"/>
8 <types xsi:type="language_1:TypeDeclaration" name="MedicalRecord class"/>
9 <types xsi:type="language_1:TypeDeclaration" name="HealthProblem class" subtypes="//@types.11 //@types.12 //@types.13" isAbstract="true"/>
10 <types xsi:type="language_1:TypeDeclaration" name="Medicine class"/>
11 <types xsi:type="language_1:TypeDeclaration" name="Treatment class" subtypes="//@types.9 //@types.10" isAbstract="true"/>
12 <types xsi:type="language_1:TypeDeclaration" name="Medication class" supertypes="//@types.8"/>
13 <types xsi:type="language_1:TypeDeclaration" name="Immunization class" supertypes="//@types.8"/>
14 <types xsi:type="language_1:TypeDeclaration" name="Allergy class" supertypes="//@types.6"/>
15 <types xsi:type="language_1:TypeDeclaration" name="Disease class" supertypes="//@types.6"/>
16 <types xsi:type="language_1:TypeDeclaration" name="Injury class" supertypes="//@types.6"/>
17 <types xsi:type="language_1:TypeDefinition" name="HealthSystem class DefinedPart" supertypes="//@types.1" elements="//@elements.0"/>
18 <types xsi:type="language_1:TypeDeclaration" name="HealthSystem class UndefinedPart" supertypes="//@types.1"/>
19 <assertions name="upperMultiplicity healthsystem Patient" annotations="//@annotations.0">
20 <value xsi:type="language_1:Forall">
21 <quantifiedVariables name="src">
22 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
23 </quantifiedVariables>
24 <quantifiedVariables name="trg 1">
25 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
26 </quantifiedVariables>
27 <quantifiedVariables name="trg 2">
28 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
29 </quantifiedVariables>
30 <expression xsi:type="language_1:Impl">
31 <leftOperand xsi:type="language_1:And">
32 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
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.1"/>
35 </operands>
36 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
37 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
38 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
39 </operands>
40 </leftOperand>
41 <rightOperand xsi:type="language_1:Not">
42 <operand xsi:type="language_1:Distinct">
43 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/>
44 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/>
45 </operand>
46 </rightOperand>
47 </expression>
48 </value>
49 </assertions>
50 <assertions name="upperMultiplicity examination HealthSystem" annotations="//@annotations.1">
51 <value xsi:type="language_1:Forall">
52 <quantifiedVariables name="src">
53 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
54 </quantifiedVariables>
55 <quantifiedVariables name="trg 1">
56 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
57 </quantifiedVariables>
58 <quantifiedVariables name="trg 2">
59 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
60 </quantifiedVariables>
61 <expression xsi:type="language_1:Impl">
62 <leftOperand xsi:type="language_1:And">
63 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
64 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
65 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
66 </operands>
67 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
68 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
69 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
70 </operands>
71 </leftOperand>
72 <rightOperand xsi:type="language_1:Not">
73 <operand xsi:type="language_1:Distinct">
74 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
75 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
76 </operand>
77 </rightOperand>
78 </expression>
79 </value>
80 </assertions>
81 <assertions name="upperMultiplicity healthsystem Examination" annotations="//@annotations.2">
82 <value xsi:type="language_1:Forall">
83 <quantifiedVariables name="src">
84 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
85 </quantifiedVariables>
86 <quantifiedVariables name="trg 1">
87 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
88 </quantifiedVariables>
89 <quantifiedVariables name="trg 2">
90 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
91 </quantifiedVariables>
92 <expression xsi:type="language_1:Impl">
93 <leftOperand xsi:type="language_1:And">
94 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
95 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
96 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
97 </operands>
98 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
99 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
100 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
101 </operands>
102 </leftOperand>
103 <rightOperand xsi:type="language_1:Not">
104 <operand xsi:type="language_1:Distinct">
105 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
106 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
107 </operand>
108 </rightOperand>
109 </expression>
110 </value>
111 </assertions>
112 <assertions name="lowerMultiplicity medicalrecord Symptom" annotations="//@annotations.3">
113 <value xsi:type="language_1:Forall">
114 <quantifiedVariables name="src">
115 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
116 </quantifiedVariables>
117 <expression xsi:type="language_1:Exists">
118 <quantifiedVariables name="trg 1">
119 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
120 </quantifiedVariables>
121 <expression xsi:type="language_1:And">
122 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
123 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
124 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@expression/@quantifiedVariables.0"/>
125 </operands>
126 </expression>
127 </expression>
128 </value>
129 </assertions>
130 <assertions name="upperMultiplicity medicalrecord Symptom" annotations="//@annotations.4">
131 <value xsi:type="language_1:Forall">
132 <quantifiedVariables name="src">
133 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
134 </quantifiedVariables>
135 <quantifiedVariables name="trg 1">
136 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
137 </quantifiedVariables>
138 <quantifiedVariables name="trg 2">
139 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
140 </quantifiedVariables>
141 <expression xsi:type="language_1:Impl">
142 <leftOperand xsi:type="language_1:And">
143 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
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.1"/>
146 </operands>
147 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
148 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
149 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
150 </operands>
151 </leftOperand>
152 <rightOperand xsi:type="language_1:Not">
153 <operand xsi:type="language_1:Distinct">
154 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
155 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
156 </operand>
157 </rightOperand>
158 </expression>
159 </value>
160 </assertions>
161 <assertions name="lowerMultiplicity examinationType ExaminationResult" annotations="//@annotations.5">
162 <value xsi:type="language_1:Forall">
163 <quantifiedVariables name="src">
164 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
165 </quantifiedVariables>
166 <expression xsi:type="language_1:Exists">
167 <quantifiedVariables name="trg 1">
168 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
169 </quantifiedVariables>
170 <expression xsi:type="language_1:And">
171 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
172 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
173 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@expression/@quantifiedVariables.0"/>
174 </operands>
175 </expression>
176 </expression>
177 </value>
178 </assertions>
179 <assertions name="upperMultiplicity examinationType ExaminationResult" annotations="//@annotations.6">
180 <value xsi:type="language_1:Forall">
181 <quantifiedVariables name="src">
182 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
183 </quantifiedVariables>
184 <quantifiedVariables name="trg 1">
185 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
186 </quantifiedVariables>
187 <quantifiedVariables name="trg 2">
188 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
189 </quantifiedVariables>
190 <expression xsi:type="language_1:Impl">
191 <leftOperand xsi:type="language_1:And">
192 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
193 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
194 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
195 </operands>
196 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
197 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
198 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
199 </operands>
200 </leftOperand>
201 <rightOperand xsi:type="language_1:Not">
202 <operand xsi:type="language_1:Distinct">
203 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/>
204 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.2"/>
205 </operand>
206 </rightOperand>
207 </expression>
208 </value>
209 </assertions>
210 <assertions name="lowerMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.7">
211 <value xsi:type="language_1:Forall">
212 <quantifiedVariables name="src">
213 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
214 </quantifiedVariables>
215 <expression xsi:type="language_1:Exists">
216 <quantifiedVariables name="trg 1">
217 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
218 </quantifiedVariables>
219 <expression xsi:type="language_1:And">
220 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
221 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
222 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@expression/@quantifiedVariables.0"/>
223 </operands>
224 </expression>
225 </expression>
226 </value>
227 </assertions>
228 <assertions name="upperMultiplicity medicalrecord ExaminationResult" annotations="//@annotations.8">
229 <value xsi:type="language_1:Forall">
230 <quantifiedVariables name="src">
231 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
232 </quantifiedVariables>
233 <quantifiedVariables name="trg 1">
234 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
235 </quantifiedVariables>
236 <quantifiedVariables name="trg 2">
237 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
238 </quantifiedVariables>
239 <expression xsi:type="language_1:Impl">
240 <leftOperand xsi:type="language_1:And">
241 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
242 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
243 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
244 </operands>
245 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
246 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
247 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
248 </operands>
249 </leftOperand>
250 <rightOperand xsi:type="language_1:Not">
251 <operand xsi:type="language_1:Distinct">
252 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
253 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.2"/>
254 </operand>
255 </rightOperand>
256 </expression>
257 </value>
258 </assertions>
259 <assertions name="lowerMultiplicity patient MedicalRecord" annotations="//@annotations.9">
260 <value xsi:type="language_1:Forall">
261 <quantifiedVariables name="src">
262 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
263 </quantifiedVariables>
264 <expression xsi:type="language_1:Exists">
265 <quantifiedVariables name="trg 1">
266 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
267 </quantifiedVariables>
268 <expression xsi:type="language_1:And">
269 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
270 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
271 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@expression/@quantifiedVariables.0"/>
272 </operands>
273 </expression>
274 </expression>
275 </value>
276 </assertions>
277 <assertions name="upperMultiplicity patient MedicalRecord" annotations="//@annotations.10">
278 <value xsi:type="language_1:Forall">
279 <quantifiedVariables name="src">
280 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
281 </quantifiedVariables>
282 <quantifiedVariables name="trg 1">
283 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
284 </quantifiedVariables>
285 <quantifiedVariables name="trg 2">
286 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
287 </quantifiedVariables>
288 <expression xsi:type="language_1:Impl">
289 <leftOperand xsi:type="language_1:And">
290 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
291 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
292 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
293 </operands>
294 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
295 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
296 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
297 </operands>
298 </leftOperand>
299 <rightOperand xsi:type="language_1:Not">
300 <operand xsi:type="language_1:Distinct">
301 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
302 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
303 </operand>
304 </rightOperand>
305 </expression>
306 </value>
307 </assertions>
308 <assertions name="lowerMultiplicity record HealthProblem" annotations="//@annotations.11">
309 <value xsi:type="language_1:Forall">
310 <quantifiedVariables name="src">
311 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
312 </quantifiedVariables>
313 <expression xsi:type="language_1:Exists">
314 <quantifiedVariables name="trg 1">
315 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
316 </quantifiedVariables>
317 <expression xsi:type="language_1:And">
318 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
319 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
320 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@expression/@quantifiedVariables.0"/>
321 </operands>
322 </expression>
323 </expression>
324 </value>
325 </assertions>
326 <assertions name="upperMultiplicity record HealthProblem" annotations="//@annotations.12">
327 <value xsi:type="language_1:Forall">
328 <quantifiedVariables name="src">
329 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
330 </quantifiedVariables>
331 <quantifiedVariables name="trg 1">
332 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
333 </quantifiedVariables>
334 <quantifiedVariables name="trg 2">
335 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
336 </quantifiedVariables>
337 <expression xsi:type="language_1:Impl">
338 <leftOperand xsi:type="language_1:And">
339 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
340 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
341 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
342 </operands>
343 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
344 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
345 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/>
346 </operands>
347 </leftOperand>
348 <rightOperand xsi:type="language_1:Not">
349 <operand xsi:type="language_1:Distinct">
350 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.1"/>
351 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.2"/>
352 </operand>
353 </rightOperand>
354 </expression>
355 </value>
356 </assertions>
357 <assertions name="lowerMultiplicity medicine Treatment" annotations="//@annotations.13">
358 <value xsi:type="language_1:Forall">
359 <quantifiedVariables name="src">
360 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
361 </quantifiedVariables>
362 <expression xsi:type="language_1:Exists">
363 <quantifiedVariables name="trg 1">
364 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
365 </quantifiedVariables>
366 <expression xsi:type="language_1:And">
367 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
368 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
369 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@expression/@quantifiedVariables.0"/>
370 </operands>
371 </expression>
372 </expression>
373 </value>
374 </assertions>
375 <assertions name="upperMultiplicity medicine Treatment" annotations="//@annotations.14">
376 <value xsi:type="language_1:Forall">
377 <quantifiedVariables name="src">
378 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
379 </quantifiedVariables>
380 <quantifiedVariables name="trg 1">
381 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
382 </quantifiedVariables>
383 <quantifiedVariables name="trg 2">
384 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
385 </quantifiedVariables>
386 <expression xsi:type="language_1:Impl">
387 <leftOperand xsi:type="language_1:And">
388 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
389 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
390 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
391 </operands>
392 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
393 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
394 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/>
395 </operands>
396 </leftOperand>
397 <rightOperand xsi:type="language_1:Not">
398 <operand xsi:type="language_1:Distinct">
399 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
400 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.2"/>
401 </operand>
402 </rightOperand>
403 </expression>
404 </value>
405 </assertions>
406 <assertions name="oppositeReference records Patient" annotations="//@annotations.15">
407 <value xsi:type="language_1:Forall">
408 <quantifiedVariables name="src">
409 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
410 </quantifiedVariables>
411 <quantifiedVariables name="trg">
412 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
413 </quantifiedVariables>
414 <expression xsi:type="language_1:Iff">
415 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
416 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
417 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
418 </leftOperand>
419 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
420 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
421 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
422 </rightOperand>
423 </expression>
424 </value>
425 </assertions>
426 <assertions name="oppositeReference healthsystem Patient" annotations="//@annotations.16">
427 <value xsi:type="language_1:Forall">
428 <quantifiedVariables name="src">
429 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
430 </quantifiedVariables>
431 <quantifiedVariables name="trg">
432 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
433 </quantifiedVariables>
434 <expression xsi:type="language_1:Iff">
435 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1">
436 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
437 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
438 </leftOperand>
439 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2">
440 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.1"/>
441 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
442 </rightOperand>
443 </expression>
444 </value>
445 </assertions>
446 <assertions name="oppositeReference examination HealthSystem" annotations="//@annotations.17">
447 <value xsi:type="language_1:Forall">
448 <quantifiedVariables name="src">
449 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
450 </quantifiedVariables>
451 <quantifiedVariables name="trg">
452 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
453 </quantifiedVariables>
454 <expression xsi:type="language_1:Iff">
455 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
456 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
457 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
458 </leftOperand>
459 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
460 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.1"/>
461 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
462 </rightOperand>
463 </expression>
464 </value>
465 </assertions>
466 <assertions name="oppositeReference examinationResult Examination" annotations="//@annotations.18">
467 <value xsi:type="language_1:Forall">
468 <quantifiedVariables name="src">
469 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
470 </quantifiedVariables>
471 <quantifiedVariables name="trg">
472 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
473 </quantifiedVariables>
474 <expression xsi:type="language_1:Iff">
475 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
476 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
477 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
478 </leftOperand>
479 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
480 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.1"/>
481 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.18/@value/@quantifiedVariables.0"/>
482 </rightOperand>
483 </expression>
484 </value>
485 </assertions>
486 <assertions name="oppositeReference medicalrecord Symptom" annotations="//@annotations.19">
487 <value xsi:type="language_1:Forall">
488 <quantifiedVariables name="src">
489 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
490 </quantifiedVariables>
491 <quantifiedVariables name="trg">
492 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
493 </quantifiedVariables>
494 <expression xsi:type="language_1:Iff">
495 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
496 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
497 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
498 </leftOperand>
499 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
500 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
501 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
502 </rightOperand>
503 </expression>
504 </value>
505 </assertions>
506 <assertions name="oppositeReference medicalrecord ExaminationResult" annotations="//@annotations.20">
507 <value xsi:type="language_1:Forall">
508 <quantifiedVariables name="src">
509 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
510 </quantifiedVariables>
511 <quantifiedVariables name="trg">
512 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
513 </quantifiedVariables>
514 <expression xsi:type="language_1:Iff">
515 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
516 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/>
517 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/>
518 </leftOperand>
519 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
520 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.1"/>
521 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.20/@value/@quantifiedVariables.0"/>
522 </rightOperand>
523 </expression>
524 </value>
525 </assertions>
526 <assertions name="oppositeReference healthProblems MedicalRecord" annotations="//@annotations.21">
527 <value xsi:type="language_1:Forall">
528 <quantifiedVariables name="src">
529 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
530 </quantifiedVariables>
531 <quantifiedVariables name="trg">
532 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
533 </quantifiedVariables>
534 <expression xsi:type="language_1:Iff">
535 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
536 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/>
537 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/>
538 </leftOperand>
539 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
540 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.1"/>
541 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.21/@value/@quantifiedVariables.0"/>
542 </rightOperand>
543 </expression>
544 </value>
545 </assertions>
546 <assertions name="errorpattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.32">
547 <value xsi:type="language_1:Forall">
548 <quantifiedVariables name="mr">
549 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
550 </quantifiedVariables>
551 <expression xsi:type="language_1:Not">
552 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
553 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.22/@value/@quantifiedVariables.0"/>
554 </operand>
555 </expression>
556 </value>
557 </assertions>
558 <assertions name="errorpattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.33">
559 <value xsi:type="language_1:Forall">
560 <quantifiedVariables name="mr">
561 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
562 </quantifiedVariables>
563 <expression xsi:type="language_1:Not">
564 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
565 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.23/@value/@quantifiedVariables.0"/>
566 </operand>
567 </expression>
568 </value>
569 </assertions>
570 <assertions name="errorpattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.34">
571 <value xsi:type="language_1:Forall">
572 <quantifiedVariables name="mr">
573 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
574 </quantifiedVariables>
575 <expression xsi:type="language_1:Not">
576 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25">
577 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.24/@value/@quantifiedVariables.0"/>
578 </operand>
579 </expression>
580 </value>
581 </assertions>
582 <assertions name="errorpattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.35">
583 <value xsi:type="language_1:Forall">
584 <quantifiedVariables name="mr">
585 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
586 </quantifiedVariables>
587 <quantifiedVariables name="med">
588 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
589 </quantifiedVariables>
590 <expression xsi:type="language_1:Not">
591 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27">
592 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.0"/>
593 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.25/@value/@quantifiedVariables.1"/>
594 </operand>
595 </expression>
596 </value>
597 </assertions>
598 <relations xsi:type="language_1:RelationDeclaration" name="records reference Patient">
599 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
600 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
601 </relations>
602 <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Patient">
603 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
604 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
605 </relations>
606 <relations xsi:type="language_1:RelationDeclaration" name="patient reference HealthSystem">
607 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
608 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
609 </relations>
610 <relations xsi:type="language_1:RelationDeclaration" name="examination reference HealthSystem">
611 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
612 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
613 </relations>
614 <relations xsi:type="language_1:RelationDeclaration" name="medicine reference HealthSystem">
615 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
616 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
617 </relations>
618 <relations xsi:type="language_1:RelationDeclaration" name="examinationResult reference Examination">
619 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
620 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
621 </relations>
622 <relations xsi:type="language_1:RelationDeclaration" name="healthsystem reference Examination">
623 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
624 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
625 </relations>
626 <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference Symptom">
627 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
628 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
629 </relations>
630 <relations xsi:type="language_1:RelationDeclaration" name="examinationType reference ExaminationResult">
631 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
632 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
633 </relations>
634 <relations xsi:type="language_1:RelationDeclaration" name="medicalrecord reference ExaminationResult">
635 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
636 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
637 </relations>
638 <relations xsi:type="language_1:RelationDeclaration" name="patient reference MedicalRecord">
639 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
640 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
641 </relations>
642 <relations xsi:type="language_1:RelationDeclaration" name="healthProblems reference MedicalRecord">
643 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
644 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
645 </relations>
646 <relations xsi:type="language_1:RelationDeclaration" name="symptom reference MedicalRecord">
647 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
648 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
649 </relations>
650 <relations xsi:type="language_1:RelationDeclaration" name="examinationResults reference MedicalRecord">
651 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
652 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
653 </relations>
654 <relations xsi:type="language_1:RelationDeclaration" name="treatment reference MedicalRecord">
655 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
656 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
657 </relations>
658 <relations xsi:type="language_1:RelationDeclaration" name="record reference HealthProblem">
659 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
660 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
661 </relations>
662 <relations xsi:type="language_1:RelationDeclaration" name="recommended_medicine reference HealthProblem">
663 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
664 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
665 </relations>
666 <relations xsi:type="language_1:RelationDeclaration" name="medicine reference Treatment">
667 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
668 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
669 </relations>
670 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatment" annotations="//@annotations.22">
671 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
672 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
673 <variables name="parameter mr">
674 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
675 </variables>
676 <variables name="parameter tr">
677 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
678 </variables>
679 <value xsi:type="language_1:Or">
680 <operands xsi:type="language_1:And">
681 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
682 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
683 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
684 </operands>
685 <operands xsi:type="language_1:InstanceOf">
686 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
687 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
688 </operands>
689 </operands>
690 </value>
691 </relations>
692 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries examinationresult" annotations="//@annotations.23">
693 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
694 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
695 <variables name="parameter mr">
696 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
697 </variables>
698 <variables name="parameter er">
699 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
700 </variables>
701 <value xsi:type="language_1:Or">
702 <operands xsi:type="language_1:And">
703 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
704 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
705 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.1"/>
706 </operands>
707 </operands>
708 </value>
709 </relations>
710 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries symptom" annotations="//@annotations.24">
711 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
712 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
713 <variables name="parameter mr">
714 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
715 </variables>
716 <variables name="parameter sy">
717 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
718 </variables>
719 <value xsi:type="language_1:Or">
720 <operands xsi:type="language_1:And">
721 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
722 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
723 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.1"/>
724 </operands>
725 </operands>
726 </value>
727 </relations>
728 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries treatmentWithoutSymptom" annotations="//@annotations.25">
729 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
730 <variables name="parameter mr">
731 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
732 </variables>
733 <value xsi:type="language_1:Or">
734 <operands xsi:type="language_1:Exists">
735 <quantifiedVariables name="variable tr">
736 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
737 </quantifiedVariables>
738 <expression xsi:type="language_1:Forall">
739 <quantifiedVariables name="variable 0">
740 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
741 </quantifiedVariables>
742 <expression xsi:type="language_1:And">
743 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
744 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
745 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
746 </operands>
747 <operands xsi:type="language_1:Not">
748 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20">
749 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
750 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@expression/@quantifiedVariables.0"/>
751 </operand>
752 </operands>
753 </expression>
754 </expression>
755 </operands>
756 </value>
757 </relations>
758 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblems" annotations="//@annotations.26">
759 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
760 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
761 <variables name="parameter mr">
762 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
763 </variables>
764 <variables name="parameter hp">
765 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
766 </variables>
767 <value xsi:type="language_1:Or">
768 <operands xsi:type="language_1:And">
769 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
770 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
771 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
772 </operands>
773 </operands>
774 </value>
775 </relations>
776 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries healthProblemsWithoutExaminationResult" annotations="//@annotations.27">
777 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
778 <variables name="parameter mr">
779 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
780 </variables>
781 <value xsi:type="language_1:Or">
782 <operands xsi:type="language_1:Exists">
783 <quantifiedVariables name="variable hp">
784 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
785 </quantifiedVariables>
786 <expression xsi:type="language_1:Forall">
787 <quantifiedVariables name="variable 0">
788 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
789 </quantifiedVariables>
790 <expression xsi:type="language_1:And">
791 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
792 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
793 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@quantifiedVariables.0"/>
794 </operands>
795 <operands xsi:type="language_1:Not">
796 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
797 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
798 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@value/@operands.0/@expression/@quantifiedVariables.0"/>
799 </operand>
800 </operands>
801 </expression>
802 </expression>
803 </operands>
804 </value>
805 </relations>
806 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergy" annotations="//@annotations.28">
807 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
808 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
809 <variables name="parameter mr">
810 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
811 </variables>
812 <variables name="parameter al">
813 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
814 </variables>
815 <value xsi:type="language_1:Or">
816 <operands xsi:type="language_1:And">
817 <operands xsi:type="language_1:InstanceOf">
818 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/>
819 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
820 </operands>
821 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
822 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
823 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/>
824 </operands>
825 </operands>
826 </value>
827 </relations>
828 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries allergyWithoutSymptom" annotations="//@annotations.29">
829 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
830 <variables name="parameter mr">
831 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
832 </variables>
833 <value xsi:type="language_1:Or">
834 <operands xsi:type="language_1:Exists">
835 <quantifiedVariables name="variable al">
836 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.11"/>
837 </quantifiedVariables>
838 <expression xsi:type="language_1:Forall">
839 <quantifiedVariables name="variable 0">
840 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
841 </quantifiedVariables>
842 <expression xsi:type="language_1:And">
843 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
844 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
845 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
846 </operands>
847 <operands xsi:type="language_1:Not">
848 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20">
849 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
850 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@expression/@quantifiedVariables.0"/>
851 </operand>
852 </operands>
853 </expression>
854 </expression>
855 </operands>
856 </value>
857 </relations>
858 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries recommended" annotations="//@annotations.30">
859 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
860 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
861 <variables name="parameter hp">
862 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
863 </variables>
864 <variables name="parameter med">
865 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
866 </variables>
867 <value xsi:type="language_1:Or">
868 <operands xsi:type="language_1:And">
869 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16">
870 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
871 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.1"/>
872 </operands>
873 <operands xsi:type="language_1:InstanceOf">
874 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.1"/>
875 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
876 </operands>
877 </operands>
878 </value>
879 </relations>
880 <relations xsi:type="language_1:RelationDefinition" name="pattern ca mcgill dp19 queries prescribedMedicineNotRecommended" annotations="//@annotations.31">
881 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
882 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
883 <variables name="parameter mr">
884 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
885 </variables>
886 <variables name="parameter med">
887 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
888 </variables>
889 <value xsi:type="language_1:Or">
890 <operands xsi:type="language_1:Exists">
891 <quantifiedVariables name="variable hp">
892 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
893 </quantifiedVariables>
894 <quantifiedVariables name="variable tr">
895 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.8"/>
896 </quantifiedVariables>
897 <expression xsi:type="language_1:And">
898 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
899 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/>
900 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/>
901 </operands>
902 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
903 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.0"/>
904 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.1"/>
905 </operands>
906 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
907 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.1"/>
908 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/>
909 </operands>
910 <operands xsi:type="language_1:InstanceOf">
911 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/>
912 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
913 </operands>
914 <operands xsi:type="language_1:Not">
915 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26">
916 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@value/@operands.0/@quantifiedVariables.0"/>
917 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.27/@variables.1"/>
918 </operand>
919 </operands>
920 </expression>
921 </operands>
922 </value>
923 </relations>
924 <elements name="o 1" definedInType="//@types.14"/>
925 <containmentHierarchies typesOrderedInHierarchy="//@types.4 //@types.11 //@types.12 //@types.5 //@types.7 //@types.9 //@types.3 //@types.13 //@types.1 //@types.0 //@types.2 //@types.6 //@types.8 //@types.10 //@types.14 //@types.15" containmentRelations="//@relations.0 //@relations.2 //@relations.3 //@relations.4 //@relations.11 //@relations.12 //@relations.13 //@relations.14"/>
926 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.1" upper="1"/>
927 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/>
928 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.6" upper="1"/>
929 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.3" relation="//@relations.7" lower="1"/>
930 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.7" upper="1"/>
931 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.5" relation="//@relations.8" lower="1"/>
932 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.6" relation="//@relations.8" upper="1"/>
933 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.7" relation="//@relations.9" lower="1"/>
934 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.8" relation="//@relations.9" upper="1"/>
935 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.9" relation="//@relations.10" lower="1"/>
936 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.10" upper="1"/>
937 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.11" relation="//@relations.15" lower="1"/>
938 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.12" relation="//@relations.15" upper="1"/>
939 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.13" relation="//@relations.17" lower="1"/>
940 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.14" relation="//@relations.17" upper="1"/>
941 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.15" inverseA="//@relations.0" inverseB="//@relations.10"/>
942 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.1" inverseB="//@relations.2"/>
943 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.17" inverseA="//@relations.3" inverseB="//@relations.6"/>
944 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.18" inverseA="//@relations.5" inverseB="//@relations.8"/>
945 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.19" inverseA="//@relations.7" inverseB="//@relations.12"/>
946 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.20" inverseA="//@relations.9" inverseB="//@relations.13"/>
947 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.21" inverseA="//@relations.11" inverseB="//@relations.15"/>
948 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatment"/>
949 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="ca.mcgill.dp19.queries.examinationresult"/>
950 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="ca.mcgill.dp19.queries.symptom"/>
951 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="ca.mcgill.dp19.queries.treatmentWithoutSymptom"/>
952 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblems"/>
953 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="ca.mcgill.dp19.queries.healthProblemsWithoutExaminationResult"/>
954 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergy"/>
955 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="ca.mcgill.dp19.queries.allergyWithoutSymptom"/>
956 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="ca.mcgill.dp19.queries.recommended"/>
957 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.27" patternFullyQualifiedName="ca.mcgill.dp19.queries.prescribedMedicineNotRecommended"/>
958 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.22" query="//@annotations.25"/>
959 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.23" query="//@annotations.27"/>
960 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.24" query="//@annotations.29"/>
961 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.25" query="//@annotations.31"/>
962</language:LogicProblem>
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
new file mode 100644
index 00000000..fedee0e4
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
@@ -0,0 +1,31 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: Test
4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true
5Bundle-Version: 1.0.0.qualifier
6Automatic-Module-Name: ca.mcgill.ecse.dslreasoner.vampire.test
7Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8Require-Bundle: com.google.guava,
9 org.eclipse.xtext.xbase.lib,
10 org.eclipse.xtend.lib,
11 org.eclipse.xtend.lib.macro,
12 ca.mcgill.ecse.dslreasoner.vampire.language;bundle-version="1.0.0",
13 hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0",
14 ca.mcgill.ecse.dslreasoner.vampire.reasoner;bundle-version="1.0.0",
15 hu.bme.mit.inf.dslreasoner.ecore2logic;bundle-version="1.0.0",
16 hu.bme.mit.inf.dslreasoner.viatra2logic;bundle-version="1.0.0",
17 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0",
18 hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.0",
19 hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage;bundle-version="1.0.0",
20 hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner;bundle-version="1.0.0",
21 hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatraquery;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",
24 ModelGenExampleFAM_plugin;bundle-version="1.0.0",
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"
31
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties
new file mode 100644
index 00000000..41eb6ade
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties
@@ -0,0 +1,4 @@
1source.. = src/
2output.. = bin/
3bin.includes = META-INF/,\
4 .
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi
new file mode 100644
index 00000000..c79e58ed
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FAM.xmi
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<fam:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:fam="FAM" xsi:schemaLocation="FAM FAM.ecore"/>
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
new file mode 100644
index 00000000..61256334
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
@@ -0,0 +1,10 @@
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</functionalarchitecture:FunctionalArchitectureModel>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi
new file mode 100644
index 00000000..49b1f89d
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/Yakindu.xmi
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<hu.bme.mit.inf.yakindumm:Statechart xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hu.bme.mit.inf.yakindumm="hu.bme.mit.inf.yakindumm"
4 xsi:schemaLocation="hu.bme.mit.inf.yakindumm yakindu_simplified.ecore"/>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi
new file mode 100644
index 00000000..867e5049
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/ecore.xmi
@@ -0,0 +1,6 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage
3 xmi:version="2.0"
4 xmlns:xmi="http://www.omg.org/XMI"
5 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
6 name="init"/>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi
new file mode 100644
index 00000000..56879c1a
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/fs.xmi
@@ -0,0 +1,3 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<FS:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:FS="FS" xsi:schemaLocation="FS FileSytem.ecore"/>
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/output/files/logProb.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem
new file mode 100644
index 00000000..2529b6d7
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem
@@ -0,0 +1,27 @@
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:SymbolicValue" symbolicReference="//@relations.0">
14 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
15 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
16 </expression>
17 </expression>
18 </value>
19 </assertions>
20 <relations xsi:type="language_1:RelationDeclaration" name="beats2">
21 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
22 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
23 </relations>
24 <elements name="Rock" definedInType="//@types.0"/>
25 <elements name="Paper" definedInType="//@types.0"/>
26 <elements name="Scissor" definedInType="//@types.0"/>
27</language:LogicProblem>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp
new file mode 100644
index 00000000..6decf070
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp
@@ -0,0 +1,38 @@
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 ) ) ) .
38
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/icseTests/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
new file mode 100644
index 00000000..a8b4dcfb
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
@@ -0,0 +1,103 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test
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
25
26class DslTest {
27 def static void main(String[] args) {
28 val inputs = new FileSystemWorkspace('''initialModels/''', "")
29 val workspace = new FileSystemWorkspace('''outputDslModels/''', "")
30 workspace.initAndClear
31
32 println("Input and output workspaces are created")
33
34 val metamodel = loadMetamodel()
35 val partialModel = loadPartialModel(inputs)
36// val queries = loadQueries(metamodel)
37
38 println("DSL loaded")
39
40 val Ecore2Logic ecore2Logic = new Ecore2Logic
41 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
42 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
43 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
44
45 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
46// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
47// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
48
49 val logicProblem = modelGenerationProblem.output
50// val logicProblem = modelExtensionProblem.output
51// val logicProblem = validModelExtensionProblem.output
52
53
54 println("Problem created")
55
56 var LogicResult solution
57 var LogicReasoner reasoner
58 //*
59 reasoner = new VampireSolver
60 val vampireConfig = new VampireSolverConfiguration => [
61 //add configuration things, in config file first
62 it.writeToFile = false
63 ]
64
65 solution = reasoner.solve(logicProblem, vampireConfig, workspace)
66
67 println("Problem solved")
68
69
70 }
71
72 def private static loadMetamodel() {
73 //FAM
74 val pckg = FunctionalarchitecturePackage.eINSTANCE
75 val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList
76 val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList
77 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
78 val List<EReference> references = classes.map[getEReferences].flatten.toList
79 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
80 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
81 }
82
83 def private static loadPartialModel(ReasonerWorkspace inputs) {
84 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
85 inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList
86// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList
87 }
88
89// def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
90// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance
91// val patterns = i.specifications.toList
92// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
93// val derivedFeatures = new LinkedHashMap
94// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
95// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
96// val res = new ViatraQuerySetDescriptor(
97// patterns,
98// wfPatterns,
99// derivedFeatures
100// )
101// return res
102// }
103}
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
new file mode 100644
index 00000000..15f9e1fe
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
@@ -0,0 +1,77 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test
2
3import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup
4import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
5import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
8import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
9import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
10import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
11import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
12import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
13import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
14import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
15import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
16import java.util.Collections
17import org.eclipse.emf.common.util.URI
18import org.eclipse.emf.ecore.resource.Resource
19import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
20import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
21
22class MedicalSystem {
23 def static void main(String[] args) {
24 init()
25 val workspace = new FileSystemWorkspace('''output/MedicalSystem/''',"")
26 workspace.initAndClear
27 val root = load()
28 println("Problem Loaded")
29
30
31// val rs = new ResourceSetImpl
32// val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp"))
33//
34// var vampireModel = VampireLanguageFactory.eINSTANCE.createVampireModel()
35
36
37
38 var LogicResult solution
39 var LogicReasoner reasoner
40
41 reasoner = new VampireSolver
42 val vampireConfig = new VampireSolverConfiguration => [
43 //add configuration things, in config file first
44 it.writeToFile = true
45 ]
46
47 solution = reasoner.solve(root, vampireConfig, workspace)
48
49// vampireModel = solution
50//
51// logRes.contents.add(vampireModel)
52// logRes.save(Collections.EMPTY_MAP)
53
54
55 println("Problem Solved")
56
57 }
58
59 protected def static LogicProblem load() {
60 val resourceSet = new ResourceSetImpl
61 val resource = resourceSet.getResource(URI.createURI("inputLPs/newMedicalSystem.logicproblem"),true)
62 val root = resource.contents.get(0) as LogicProblem
63 root
64 }
65
66 protected def static void init() {
67 LogiclanguagePackage.eINSTANCE.eClass
68 LogicproblemPackage.eINSTANCE.eClass()
69 Ecore2logicannotationsPackage.eINSTANCE.eClass()
70 Viatra2LogicAnnotationsPackage.eINSTANCE.eClass()
71 val reg = Resource.Factory.Registry.INSTANCE
72 val map = reg.extensionToFactoryMap
73 map.put("logicproblem", new XMIResourceFactoryImpl)
74 map.put("tptp", new XMIResourceFactoryImpl)
75 VampireLanguageStandaloneSetup.doSetup
76 }
77}
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
new file mode 100644
index 00000000..f99f0a40
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
@@ -0,0 +1,168 @@
1//package ca.mcgill.ecse.dslreasoner.vampire.test
2//
3//import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
4//import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage
5//import java.util.List
6//import org.eclipse.emf.ecore.EClass
7//import org.eclipse.emf.ecore.EEnumLiteral
8//import org.eclipse.emf.ecore.EReference
9//import org.eclipse.emf.ecore.EEnum
10//import org.eclipse.emf.ecore.EAttribute
11//import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
12//import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
13//import org.eclipse.emf.ecore.EObject
14//import java.util.LinkedHashMap
15//import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
16//import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
17//import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
18//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
19//import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
20//import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
21//import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
22//import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod
23//import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.StateCoderStrategy
24//import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner
25//import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
26//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
27//import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
28//import org.eclipse.emf.ecore.resource.Resource
29//import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
30//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
31//import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
32//import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
33//import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
34//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
35//import java.util.LinkedList
36//import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualisation
37//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicStructureBuilder
38//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
39//
40//class SimpleRun {
41//
42// def static void main(String[] args) {
43// val inputs = new FileSystemWorkspace('''initialModels/''',"")
44// val workspace = new FileSystemWorkspace('''outputModels/''',"")
45// workspace.initAndClear
46//
47// println("Input and output workspaces are created")
48//
49// val metamodel = loadMetamodel()
50// val partialModel = loadPartialModel(inputs)
51// val queries = loadQueries(metamodel)
52//
53// println("DSL loaded")
54//
55// val Ecore2Logic ecore2Logic = new Ecore2Logic
56// val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
57// val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
58// val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
59//
60// val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
61// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
62// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
63//
64// val logicProblem = validModelExtensionProblem.output
65//
66// println("Problem created")
67// var LogicResult solution
68// var LogicReasoner reasoner
69// /*
70// reasoner = new ViatraReasoner
71// val viatraConfig = new ViatraReasonerConfiguration => [
72// it.typeScopes.maxNewElements = 40
73// it.typeScopes.minNewElements = 40
74// it.solutionScope.numberOfRequiredSolution = 1
75// it.existingQueries = queries.patterns.map[it.internalQueryRepresentation]
76// it.debugCongiguration.logging = false
77// it.debugCongiguration.partalInterpretationVisualisationFrequency = 1
78// it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation
79// ]
80// solution = reasoner.solve(logicProblem,viatraConfig,workspace)
81// /*/
82// reasoner = new AlloySolver
83// val alloyConfig = new AlloySolverConfiguration => [
84// it.typeScopes.maxNewElements = 5
85// it.typeScopes.minNewElements = 5
86// it.solutionScope.numberOfRequiredSolution = 1
87// it.typeScopes.maxNewIntegers = 0
88// it.writeToFile = true
89// ]
90// solution = reasoner.solve(logicProblem,alloyConfig,workspace)
91// //*/
92//
93// println("Problem solved")= ^
94//
95//
96// val interpretations = reasoner.getInterpretations(solution as ModelResult)
97// val models = new LinkedList
98// for(interpretation : interpretations) {
99// val extension b = new LogicStructureBuilder
100// val extension a = new LogicProblemBuilder
101//
102//
103//
104// val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace)
105// models+=instanceModel
106// }
107//
108// solution.writeSolution(workspace, #[])
109// }
110//
111// def private static loadMetamodel() {
112// val pckg = FunctionalArchitecturePackage.eINSTANCE
113// val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList
114// val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList
115// val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
116// val List<EReference> references = classes.map[getEReferences].flatten.toList
117// val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
118// return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
119// }
120//
121// def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
122// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance
123// val patterns = i.specifications.toList
124// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
125// val derivedFeatures = new LinkedHashMap
126// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
127// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
128// val res = new ViatraQuerySetDescriptor(
129// patterns,
130// wfPatterns,
131// derivedFeatures
132// )
133// return res
134// }
135//
136// def static loadPartialModel(ReasonerWorkspace inputs) {
137// Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
138// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList
139// }
140//
141// def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List<EObject> models) {
142// if(solution instanceof ModelResult) {
143// val representations = solution.representation
144// for(representationIndex : 0..<representations.size) {
145// val representation = representations.get(representationIndex)
146// val representationNumber = representationIndex + 1
147// if(representation instanceof PartialInterpretation) {
148// workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''')
149// val partialInterpretation2GML = new PartialInterpretation2Gml
150// val gml = partialInterpretation2GML.transform(representation)
151// //ecore2GML.transform(root)
152// workspace.writeText('''solutionVisualisation.gml''',gml)
153//
154// } else {
155// workspace.writeText('''solution«representationNumber».txt''',representation.toString)
156// }
157// }
158// for(model : models) {
159// workspace.writeModel(model,"model.xmi")
160// }
161// println("Solution saved and visualised")
162// }
163// }
164//
165// def static visualizeSolution() {
166//
167// }
168//}
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
new file mode 100644
index 00000000..4fc81ad8
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
@@ -0,0 +1,156 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test
2
3
4import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
6import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
8import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
9import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
12import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
13import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage
14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
15import java.util.Collections
16import org.eclipse.emf.common.util.URI
17import org.eclipse.emf.ecore.resource.Resource
18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20import java.io.File
21
22class VampireTest {
23
24 val static extension LogicProblemBuilder builder = new LogicProblemBuilder
25
26 def static void main(String[] args) {
27// val inputs = new FileSystemWorkspace('''initialModels/''',"")
28
29
30 //create logic problem
31 //var LogicProblem problem = builder.createProblem
32
33
34
35 LogicproblemPackage.eINSTANCE.eClass()
36 Ecore2logicannotationsPackage.eINSTANCE.eClass()
37 Viatra2LogicAnnotationsPackage.eINSTANCE.eClass()
38 val reg = Resource.Factory.Registry.INSTANCE
39 val map = reg.extensionToFactoryMap
40 map.put("logicproblem", new XMIResourceFactoryImpl)
41 VampireLanguageStandaloneSetup.doSetup
42
43 val workspace = new FileSystemWorkspace('''output/VampireTest''',"")
44 workspace.initAndClear
45
46 //Storing the logicProblem
47 val filename = "problem.logicproblem"
48 var LogicProblem problem = builder.createProblem
49
50 /*
51 deMorgan(problem)
52 /*/
53 rockPaperScisors(problem)
54 //*/
55
56 workspace.writeModel(problem, filename)
57
58 //problem.add(Assertion( Y && X <=> X) )
59
60 println("Problem Created");
61
62 var LogicResult solution
63 var LogicReasoner reasoner
64
65 reasoner = new VampireSolver
66 val vampireConfig = new VampireSolverConfiguration => [
67 //add configuration things, in config file first
68 it.writeToFile = true
69 ]
70
71 solution = reasoner.solve(problem, vampireConfig, workspace)
72
73// if(solution instanceof ModelResult) {
74// reasoner.getInterpretations(solution)
75// }
76 //^can extract everything (ex, vars) from solver
77
78
79 //call the solver
80
81 println("Problem Solved")
82
83 //output solution
84
85 }
86
87 def name() {
88 return this.class.simpleName
89 }
90
91 static def deMorgan(LogicProblem problem) {
92
93
94 var X = ConstantDeclaration(LogicBool)
95 var Y = ConstantDeclaration(LogicBool)
96 problem.add(X)
97 problem.add(Y)
98
99 //assertion is negated manually because logic problem can only handle axioms (assertions)
100 //so ya
101 problem.add(Assertion( !(X && Y) <=> ( !X || !Y)) )
102 }
103
104 static def rockPaperScisors(LogicProblem problem) {
105
106 val rock = Element("Rock")
107 val paper= Element("Paper")
108 val scissor = Element("Scissor")
109
110 problem.elements += rock
111 problem.elements += paper
112 problem.elements += scissor
113
114// val red = Element("Red")
115// val green = Element("Green")
116//
117// problem.elements += red
118// problem.elements += green
119
120
121 //val allRPS = problem.add(TypeDeclaration("allRPS", true))
122 //val newRPS = problem.add(TypeDeclaration("newRPS", false))
123 val oldRPS = problem.add(TypeDefinition("oldRPS", false, rock, paper, scissor)) //n+1 axioms, where n is the number of type definitions. 1. rocjk, paper, scissor are all rps. 2. every object is rps
124
125// val color = problem.add(TypeDefinition("color", false, red, green ))
126 //Supertype(oldRPS,allRPS)
127 //Supertype(newRPS,oldRPS)
128
129
130
131
132 /* Remains
133 val beats = problem.add(RelationDefinition("beats",[
134 val x = addVar("x",oldRPS)
135 val y = addVar("y",oldRPS)
136 (x==rock && y==scissor)||(x==scissor && y==paper)||(x==paper && y==rock)
137 ]))
138
139 /*/
140 //below needs to be added as an axiom
141 val beats2 = problem.add(RelationDeclaration("beats2",oldRPS,oldRPS))
142 problem.add(Assertion(Forall[
143 val x = addVar("x",oldRPS)
144 //x.range
145 Exists[
146 val y = addVar("y",oldRPS)
147 And(beats2.call(x,y),
148 x != y,
149 Not(beats2.call(y, x))
150 )
151 ]
152 ]))
153 //*/
154
155 }
156} \ No newline at end of file
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/.DslTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin
new file mode 100644
index 00000000..59f57d8b
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.DslTest.xtendbin
Binary files differ
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
new file mode 100644
index 00000000..fe447779
--- /dev/null
+++ 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
new file mode 100644
index 00000000..8e57f5e7
--- /dev/null
+++ 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
new file mode 100644
index 00000000..9d12dab4
--- /dev/null
+++ 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
new file mode 100644
index 00000000..2760bac4
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
@@ -0,0 +1,12 @@
1/.VampireTest.java._trace
2/.SimpleRun.java._trace
3/.DslTest.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/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java
new file mode 100644
index 00000000..7b4849e1
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/FAMTest.java
@@ -0,0 +1,111 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test;
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 DslTest {
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("outputDslModels/");
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 = DslTest.loadMetamodel();
56 final List<EObject> partialModel = DslTest.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 LogicProblem logicProblem = modelGenerationProblem.getOutput();
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 = false;
73 };
74 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
75 solution = reasoner.solve(logicProblem, vampireConfig, workspace);
76 InputOutput.<String>println("Problem solved");
77 } catch (Throwable _e) {
78 throw Exceptions.sneakyThrow(_e);
79 }
80 }
81
82 private static EcoreMetamodelDescriptor loadMetamodel() {
83 final FunctionalarchitecturePackage pckg = FunctionalarchitecturePackage.eINSTANCE;
84 final List<EClass> classes = IterableExtensions.<EClass>toList(Iterables.<EClass>filter(pckg.getEClassifiers(), EClass.class));
85 final List<EEnum> enums = IterableExtensions.<EEnum>toList(Iterables.<EEnum>filter(pckg.getEClassifiers(), EEnum.class));
86 final Function1<EEnum, EList<EEnumLiteral>> _function = (EEnum it) -> {
87 return it.getELiterals();
88 };
89 final List<EEnumLiteral> literals = IterableExtensions.<EEnumLiteral>toList(Iterables.<EEnumLiteral>concat(ListExtensions.<EEnum, EList<EEnumLiteral>>map(enums, _function)));
90 final Function1<EClass, EList<EReference>> _function_1 = (EClass it) -> {
91 return it.getEReferences();
92 };
93 final List<EReference> references = IterableExtensions.<EReference>toList(Iterables.<EReference>concat(ListExtensions.<EClass, EList<EReference>>map(classes, _function_1)));
94 final Function1<EClass, EList<EAttribute>> _function_2 = (EClass it) -> {
95 return it.getEAttributes();
96 };
97 final List<EAttribute> attributes = IterableExtensions.<EAttribute>toList(Iterables.<EAttribute>concat(ListExtensions.<EClass, EList<EAttribute>>map(classes, _function_2)));
98 return new EcoreMetamodelDescriptor(classes, Collections.<EClass>unmodifiableSet(CollectionLiterals.<EClass>newHashSet()), false, enums, literals, references, attributes);
99 }
100
101 private static List<EObject> loadPartialModel(final ReasonerWorkspace inputs) {
102 List<EObject> _xblockexpression = null;
103 {
104 Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap();
105 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
106 _extensionToFactoryMap.put("*", _xMIResourceFactoryImpl);
107 _xblockexpression = IteratorExtensions.<EObject>toList(inputs.<EObject>readModel(EObject.class, "FunctionalArchitectureModel.xmi").eResource().getAllContents());
108 }
109 return _xblockexpression;
110 }
111}
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
new file mode 100644
index 00000000..ece0a9bb
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.java
@@ -0,0 +1,78 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test;
2
3import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage;
9import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
11import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
12import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage;
13import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
14import java.util.Map;
15import org.eclipse.emf.common.util.URI;
16import org.eclipse.emf.ecore.EObject;
17import org.eclipse.emf.ecore.resource.Resource;
18import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
20import org.eclipse.xtend2.lib.StringConcatenation;
21import org.eclipse.xtext.xbase.lib.Exceptions;
22import org.eclipse.xtext.xbase.lib.InputOutput;
23import org.eclipse.xtext.xbase.lib.ObjectExtensions;
24import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
25
26@SuppressWarnings("all")
27public class MedicalSystem {
28 public static void main(final String[] args) {
29 try {
30 MedicalSystem.init();
31 StringConcatenation _builder = new StringConcatenation();
32 _builder.append("output/MedicalSystem/");
33 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), "");
34 workspace.initAndClear();
35 final LogicProblem root = MedicalSystem.load();
36 InputOutput.<String>println("Problem Loaded");
37 LogicResult solution = null;
38 LogicReasoner reasoner = null;
39 VampireSolver _vampireSolver = new VampireSolver();
40 reasoner = _vampireSolver;
41 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
42 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
43 it.writeToFile = true;
44 };
45 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
46 solution = reasoner.solve(root, vampireConfig, workspace);
47 InputOutput.<String>println("Problem Solved");
48 } catch (Throwable _e) {
49 throw Exceptions.sneakyThrow(_e);
50 }
51 }
52
53 protected static LogicProblem load() {
54 LogicProblem _xblockexpression = null;
55 {
56 final ResourceSetImpl resourceSet = new ResourceSetImpl();
57 final Resource resource = resourceSet.getResource(URI.createURI("inputLPs/newMedicalSystem.logicproblem"), true);
58 EObject _get = resource.getContents().get(0);
59 final LogicProblem root = ((LogicProblem) _get);
60 _xblockexpression = root;
61 }
62 return _xblockexpression;
63 }
64
65 protected static void init() {
66 LogiclanguagePackage.eINSTANCE.eClass();
67 LogicproblemPackage.eINSTANCE.eClass();
68 Ecore2logicannotationsPackage.eINSTANCE.eClass();
69 Viatra2LogicAnnotationsPackage.eINSTANCE.eClass();
70 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
71 final Map<String, Object> map = reg.getExtensionToFactoryMap();
72 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
73 map.put("logicproblem", _xMIResourceFactoryImpl);
74 XMIResourceFactoryImpl _xMIResourceFactoryImpl_1 = new XMIResourceFactoryImpl();
75 map.put("tptp", _xMIResourceFactoryImpl_1);
76 VampireLanguageStandaloneSetup.doSetup();
77 }
78}
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
new file mode 100644
index 00000000..74f117f2
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
@@ -0,0 +1,142 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test;
2
3import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetup;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
7import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder;
8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.VariableContext;
10import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And;
11import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion;
12import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ConstantDeclaration;
13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
14import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Distinct;
15import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Exists;
16import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Iff;
17import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not;
18import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or;
19import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation;
20import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue;
21import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription;
22import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
23import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable;
24import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
25import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
26import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
27import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage;
28import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
29import java.util.Map;
30import org.eclipse.emf.common.util.EList;
31import org.eclipse.emf.ecore.resource.Resource;
32import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
33import org.eclipse.xtend2.lib.StringConcatenation;
34import org.eclipse.xtext.xbase.lib.Exceptions;
35import org.eclipse.xtext.xbase.lib.Extension;
36import org.eclipse.xtext.xbase.lib.Functions.Function1;
37import org.eclipse.xtext.xbase.lib.InputOutput;
38import org.eclipse.xtext.xbase.lib.ObjectExtensions;
39import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
40
41@SuppressWarnings("all")
42public class VampireTest {
43 @Extension
44 private final static LogicProblemBuilder builder = new LogicProblemBuilder();
45
46 public static void main(final String[] args) {
47 try {
48 LogicproblemPackage.eINSTANCE.eClass();
49 Ecore2logicannotationsPackage.eINSTANCE.eClass();
50 Viatra2LogicAnnotationsPackage.eINSTANCE.eClass();
51 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
52 final Map<String, Object> map = reg.getExtensionToFactoryMap();
53 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
54 map.put("logicproblem", _xMIResourceFactoryImpl);
55 VampireLanguageStandaloneSetup.doSetup();
56 StringConcatenation _builder = new StringConcatenation();
57 _builder.append("output/VampireTest");
58 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder.toString(), "");
59 workspace.initAndClear();
60 final String filename = "problem.logicproblem";
61 LogicProblem problem = VampireTest.builder.createProblem();
62 VampireTest.rockPaperScisors(problem);
63 workspace.writeModel(problem, filename);
64 InputOutput.<String>println("Problem Created");
65 LogicResult solution = null;
66 LogicReasoner reasoner = null;
67 VampireSolver _vampireSolver = new VampireSolver();
68 reasoner = _vampireSolver;
69 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
70 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
71 it.writeToFile = true;
72 };
73 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
74 solution = reasoner.solve(problem, vampireConfig, workspace);
75 InputOutput.<String>println("Problem Solved");
76 } catch (Throwable _e) {
77 throw Exceptions.sneakyThrow(_e);
78 }
79 }
80
81 public String name() {
82 return this.getClass().getSimpleName();
83 }
84
85 public static Assertion deMorgan(final LogicProblem problem) {
86 Assertion _xblockexpression = null;
87 {
88 ConstantDeclaration X = VampireTest.builder.ConstantDeclaration(VampireTest.builder.LogicBool());
89 ConstantDeclaration Y = VampireTest.builder.ConstantDeclaration(VampireTest.builder.LogicBool());
90 VampireTest.builder.add(problem, X);
91 VampireTest.builder.add(problem, Y);
92 And _and = VampireTest.builder.operator_and(X, Y);
93 Not _not = VampireTest.builder.operator_not(_and);
94 Not _not_1 = VampireTest.builder.operator_not(X);
95 Not _not_2 = VampireTest.builder.operator_not(Y);
96 Or _or = VampireTest.builder.operator_or(_not_1, _not_2);
97 Iff _spaceship = VampireTest.builder.operator_spaceship(_not, _or);
98 _xblockexpression = VampireTest.builder.add(problem, VampireTest.builder.Assertion(_spaceship));
99 }
100 return _xblockexpression;
101 }
102
103 public static Assertion rockPaperScisors(final LogicProblem problem) {
104 Assertion _xblockexpression = null;
105 {
106 final DefinedElement rock = VampireTest.builder.Element("Rock");
107 final DefinedElement paper = VampireTest.builder.Element("Paper");
108 final DefinedElement scissor = VampireTest.builder.Element("Scissor");
109 EList<DefinedElement> _elements = problem.getElements();
110 _elements.add(rock);
111 EList<DefinedElement> _elements_1 = problem.getElements();
112 _elements_1.add(paper);
113 EList<DefinedElement> _elements_2 = problem.getElements();
114 _elements_2.add(scissor);
115 final Type oldRPS = VampireTest.builder.add(problem, VampireTest.builder.TypeDefinition("oldRPS", false, rock, paper, scissor));
116 final Relation beats2 = VampireTest.builder.add(problem, VampireTest.builder.RelationDeclaration("beats2", oldRPS, oldRPS));
117 final Function1<VariableContext, TermDescription> _function = (VariableContext it) -> {
118 Exists _xblockexpression_1 = null;
119 {
120 final Variable x = it.addVar("x", oldRPS);
121 final Function1<VariableContext, TermDescription> _function_1 = (VariableContext it_1) -> {
122 And _xblockexpression_2 = null;
123 {
124 final Variable y = it_1.addVar("y", oldRPS);
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)));
129 }
130 return _xblockexpression_2;
131 };
132 _xblockexpression_1 = VampireTest.builder.Exists(_function_1);
133 }
134 return _xblockexpression_1;
135 };
136 _xblockexpression = VampireTest.builder.add(problem,
137 VampireTest.builder.Assertion(
138 VampireTest.builder.Forall(_function)));
139 }
140 return _xblockexpression;
141 }
142}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore
new file mode 100644
index 00000000..2c8a0d43
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore
@@ -0,0 +1,2 @@
1/.SimpleRun.java._trace
2/.MedicalSystem.java._trace