aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.vampire.test
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-01-16 01:41:23 -0500
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-01-16 01:41:23 -0500
commitb685589e596bdc27fd9cbbbdde347a5d6f1439e0 (patch)
treeff0e8f49b6f107ebc5937b58c1e5e0154c5e37d1 /Tests/ca.mcgill.ecse.dslreasoner.vampire.test
parentInitial workspace setup (diff)
downloadVIATRA-Generator-b685589e596bdc27fd9cbbbdde347a5d6f1439e0.tar.gz
VIATRA-Generator-b685589e596bdc27fd9cbbbdde347a5d6f1439e0.tar.zst
VIATRA-Generator-b685589e596bdc27fd9cbbbdde347a5d6f1439e0.zip
FAM MM transformation works
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test')
-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.MF8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem42
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp39
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend103
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend76
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend275
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend2
-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.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6302 -> 6307 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.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.java2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/hu/bme/mit/inf/dslreasoner/run/.gitignore2
19 files changed, 2519 insertions, 185 deletions
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
index 13fcb7b9..a5999e6d 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
@@ -16,5 +16,11 @@ Require-Bundle: com.google.guava,
16 hu.bme.mit.inf.dslreasoner.viatra2logic;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", 17 org.eclipse.emf.ecore.xmi;bundle-version="2.13.0",
18 hu.bme.mit.inf.dlsreasoner.alloy.reasoner;bundle-version="1.0.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" 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"
20 26
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..59935a2c
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/initialModels/FunctionalArchitectureModel.xmi
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<functionalarchitecture:FunctionalArchitectureModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:functionalarchitecture="http://www.inf.mit.bme.hu/viatrasolver/example/fam"
4 xsi:schemaLocation="http://www.inf.mit.bme.hu/viatrasolver/example/fam FamMetamodel.ecore"/>
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
index f5f90f38..2529b6d7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/logProb.logicproblem
@@ -1,27 +1,27 @@
1<?xml version="1.0" encoding="ASCII"?> 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"> 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"/>
3 <assertions name="assertion1"> 4 <assertions name="assertion1">
4 <value xsi:type="language_1:Iff"> 5 <value xsi:type="language_1:Forall">
5 <leftOperand xsi:type="language_1:Not"> 6 <quantifiedVariables name="x">
6 <operand xsi:type="language_1:And"> 7 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
7 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.0"/> 8 </quantifiedVariables>
8 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.1"/> 9 <expression xsi:type="language_1:Exists">
9 </operand> 10 <quantifiedVariables name="y">
10 </leftOperand> 11 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
11 <rightOperand xsi:type="language_1:Or"> 12 </quantifiedVariables>
12 <operands xsi:type="language_1:Not"> 13 <expression xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0">
13 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.0"/> 14 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
14 </operands> 15 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
15 <operands xsi:type="language_1:Not"> 16 </expression>
16 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@constants.1"/> 17 </expression>
17 </operands>
18 </rightOperand>
19 </value> 18 </value>
20 </assertions> 19 </assertions>
21 <constants xsi:type="language_1:ConstantDeclaration" name="constant1"> 20 <relations xsi:type="language_1:RelationDeclaration" name="beats2">
22 <type xsi:type="language_1:BoolTypeReference"/> 21 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
23 </constants> 22 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
24 <constants xsi:type="language_1:ConstantDeclaration" name="constant2"> 23 </relations>
25 <type xsi:type="language_1:BoolTypeReference"/> 24 <elements name="Rock" definedInType="//@types.0"/>
26 </constants> 25 <elements name="Paper" definedInType="//@types.0"/>
26 <elements name="Scissor" definedInType="//@types.0"/>
27</language:LogicProblem> 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
index ddeec4f4..6decf070 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/files/vampireCode.tptp
@@ -1 +1,38 @@
1%This is an initial Test Comment fof ( assertion1 , axiom , ~ ( constant1 & constant2 ) <=> ( ~ constant1 | ~ constant2 ) ) . 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/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend
new file mode 100644
index 00000000..a8b4dcfb
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.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..ccc17617
--- /dev/null
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend
@@ -0,0 +1,76 @@
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('''outputModels/''',"")
26 workspace.initAndClear
27 val root = load()
28 println("Problem Loaded")
29
30// val rs = new ResourceSetImpl
31// val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp"))
32//
33// var vampireModel = VampireLanguageFactory.eINSTANCE.createVampireModel()
34
35
36
37 var LogicResult solution
38 var LogicReasoner reasoner
39
40 reasoner = new VampireSolver
41 val vampireConfig = new VampireSolverConfiguration => [
42 //add configuration things, in config file first
43 it.writeToFile = false
44 ]
45
46 solution = reasoner.solve(root, vampireConfig, workspace)
47
48// vampireModel = solution
49//
50// logRes.contents.add(vampireModel)
51// logRes.save(Collections.EMPTY_MAP)
52
53
54 println("Problem Solved")
55
56 }
57
58 protected def static LogicProblem load() {
59 val resourceSet = new ResourceSetImpl
60 val resource = resourceSet.getResource(URI.createURI("inputLPs/newMedicalSystem.logicproblem"),true)
61 val root = resource.contents.get(0) as LogicProblem
62 root
63 }
64
65 protected def static void init() {
66 LogiclanguagePackage.eINSTANCE.eClass
67 LogicproblemPackage.eINSTANCE.eClass()
68 Ecore2logicannotationsPackage.eINSTANCE.eClass()
69 Viatra2LogicAnnotationsPackage.eINSTANCE.eClass()
70 val reg = Resource.Factory.Registry.INSTANCE
71 val map = reg.extensionToFactoryMap
72 map.put("logicproblem", new XMIResourceFactoryImpl)
73 map.put("tptp", new XMIResourceFactoryImpl)
74 VampireLanguageStandaloneSetup.doSetup
75 }
76}
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
index feb28dd5..9d2235f0 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend
@@ -1,176 +1,130 @@
1//package ca.mcgill.ecse.dslreasoner.vampire.test 1//package ca.mcgill.ecse.dslreasoner.vampire.test
2// 2//
3//import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
4//import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
5//import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage
6//import hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern
7//import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
8//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
9//import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
10//import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
11//import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
12//import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
13//import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor
14//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
15//import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
16//import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 3//import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
17//import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace 4//import hu.bme.mit.inf.dslreasomer.domains.transima.fam.FunctionalArchitecture.FunctionalArchitecturePackage
18//import java.util.LinkedHashMap
19//import java.util.List 5//import java.util.List
20//import org.eclipse.emf.ecore.EAttribute
21//import org.eclipse.emf.ecore.EClass 6//import org.eclipse.emf.ecore.EClass
22//import org.eclipse.emf.ecore.EEnum
23//import org.eclipse.emf.ecore.EEnumLiteral 7//import org.eclipse.emf.ecore.EEnumLiteral
24//import org.eclipse.emf.ecore.EObject
25//import org.eclipse.emf.ecore.EReference 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
26//import org.eclipse.emf.ecore.resource.Resource 28//import org.eclipse.emf.ecore.resource.Resource
27//import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 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
28// 39//
29//class SimpleRun { 40//class SimpleRun {
30// 41//
31// def static void main(String[] args) { 42// def static void main(String[] args) {
32// val inputs = new FileSystemWorkspace('''initialModels/''', "") 43// val inputs = new FileSystemWorkspace('''initialModels/''',"")
33// val workspace = new FileSystemWorkspace('''outputModels/''', "") 44// val workspace = new FileSystemWorkspace('''outputModels/''',"")
34// workspace.initAndClear 45// workspace.initAndClear
35////
36//// println("Input and output workspaces are created")
37////
38//// val metamodel = loadMetamodel()
39//// val partialModel = loadPartialModel(inputs)
40//// val queries = loadQueries(metamodel)
41////
42//// println("DSL loaded")
43////
44//// val Ecore2Logic ecore2Logic = new Ecore2Logic
45//// val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
46//// val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
47//// val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
48////
49//// val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
50//// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
51//// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
52////
53//// val logicProblem = validModelExtensionProblem.output
54//// //*************xmi.save. advntageous cuz seperate and only contains things that are necessary
55//// //Write to file. This is importnat to understand
56//// //furthermore, output solution1.partialInterpretation contains also the logic probelm
57//// //that needs to be solved
58////
59//// //Logic problem same for vamp,l alloy, viatra. but fr alloy, vamp, it is mapped into the specific ecore metamodel using the xtext.
60//// //initial simple example: take one thing (ex. iff) from the logic problem generated for one of the sample examples, try to make it into vampire
61//// //xtext (but only the instance model, not the lines of code) to see how mapping will work. Then ishteh use vampire on it to "solve" it.
62// // create logic problem
63// var extension builder = new LogicProblemBuilder
64// var LogicProblem problem = builder.createProblem
65//
66// val rock = Element("Rock")
67// val paper = Element("Paper")
68// val scissor = Element("Scissor")
69//
70// problem.elements += rock
71// problem.elements += paper
72// problem.elements += scissor
73//
74//// val red = Element("Red")
75//// val green = Element("Green")
76////
77//// problem.elements += red
78//// problem.elements += green
79//
80//// val allRPS = problem.add(TypeDeclaration("allRPS", true))
81// 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
82//// val newRPS = problem.add(TypeDeclaration("newRPS", false))
83//// val color = problem.add(TypeDefinition("color", false, red, green))
84//// Supertype(oldRPS, allRPS)
85//// Supertype(newRPS, allRPS)
86// 46//
87// val beats2 = problem.add(RelationDeclaration("beats2", oldRPS, oldRPS)) 47// println("Input and output workspaces are created")
88// problem.add(Assertion(Forall[ 48//
89// val x = addVar("x", oldRPS) 49// val metamodel = loadMetamodel()
90// // x.range 50// val partialModel = loadPartialModel(inputs)
91// Exists[ 51// val queries = loadQueries(metamodel)
92// val y = addVar("y", oldRPS) 52//
93// beats2.call(x, y) 53// println("DSL loaded")
94// ] 54//
95// ])) 55// val Ecore2Logic ecore2Logic = new Ecore2Logic
96// 56// val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
97//// val beats = problem.add(RelationDefinition("beats",[ 57// val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
98//// val x = addVar("x",RPS) 58// val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
99//// val y = addVar("y",RPS) 59//
100//// (x==rock && y==scissor)||(x==scissor && y==paper)||(x==paper && y==rock) 60// val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
101//// ])) 61// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
102//// 62// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
103//// //below needs to be added as an axiom 63//
104//// val beats2 = problem.add(RelationDeclaration("beats2",RPS,RPS)) 64// val logicProblem = validModelExtensionProblem.output
105//// problem.add(Assertion(Forall[ 65//
106//// val x = addVar("x",RPS)
107//// Exists[
108//// val y = addVar("y",RPS)
109//// beats2.call(x,y)
110//// ]
111//// ]))
112// println("Problem created") 66// println("Problem created")
113// var LogicResult solution 67// var LogicResult solution
114// var LogicReasoner reasoner 68// var LogicReasoner reasoner
115// /* 69// //*
116// * reasoner = new ViatraReasoner 70// reasoner = new ViatraReasoner
117// * val viatraConfig = new ViatraReasonerConfiguration => [ 71// val viatraConfig = new ViatraReasonerConfiguration => [
118// * it.typeScopes.maxNewElements = 5 72// it.typeScopes.maxNewElements = 40
119// * it.typeScopes.minNewElements = 5 73// it.typeScopes.minNewElements = 40
120// * it.solutionScope.numberOfRequiredSolution = 1
121// * it.existingQueries = queries.patterns.map[it.internalQueryRepresentation]
122// * it.debugCongiguration.logging = false
123// * it.debugCongiguration.partalInterpretationVisualisationFrequency = 1
124// * it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation
125// * ]
126// * solution = reasoner.solve(logicProblem,viatraConfig,workspace)
127// /*/
128// reasoner = new AlloySolver
129// val alloyConfig = new AlloySolverConfiguration => [
130// it.typeScopes.maxNewElements = 5
131// it.typeScopes.minNewElements = 5
132// it.solutionScope.numberOfRequiredSolution = 1 74// it.solutionScope.numberOfRequiredSolution = 1
133// it.typeScopes.maxNewIntegers = 0 75// it.existingQueries = queries.patterns.map[it.internalQueryRepresentation]
134// it.writeToFile = false 76// it.debugCongiguration.logging = false
77// it.debugCongiguration.partalInterpretationVisualisationFrequency = 1
78// it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation
135// ] 79// ]
136// solution = reasoner.solve(problem, alloyConfig, workspace) 80// solution = reasoner.solve(logicProblem,viatraConfig,workspace)
137// // */ 81// /*/
138// // ************ 82// reasoner = new AlloySolver
139// // since input logic model is also output, we can check out what is the input for alloy and then 83// val alloyConfig = new AlloySolverConfiguration => [
140// // see what should be input for vampire, as it should be similar to alloy. once i can create the input, 84// it.typeScopes.maxNewElements = 5
141// // that is the first step. 85// it.typeScopes.minNewElements = 5
142// // look at allo2logic 86// it.solutionScope.numberOfRequiredSolution = 1
143// // always keep looking at output 87// it.typeScopes.maxNewIntegers = 0
144// // try to figure out what rule is used 88// it.writeToFile = true
145// println("Problem solved") 89// ]
146// 90// solution = reasoner.solve(logicProblem,alloyConfig,workspace)
147//// val interpretations = reasoner.getInterpretations(solution as ModelResult) 91// //*/
148//// val models = new LinkedList 92//
149//// for(interpretation : interpretations) { 93// println("Problem solved")= ^
150//// val instanceModel = logic2Ecore.transformInterpretation(interpretation,modelGenerationProblem.trace) 94//
151//// models+=instanceModel 95//
152//// } 96// val interpretations = reasoner.getInterpretations(solution as ModelResult)
153//// 97// val models = new LinkedList
154//// solution.writeSolution(workspace, #[]) 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, #[])
155// } 109// }
156// 110//
157// def private static loadMetamodel() { 111// def private static loadMetamodel() {
158// val pckg = FunctionalArchitecturePackage.eINSTANCE 112// val pckg = FunctionalArchitecturePackage.eINSTANCE
159// val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList 113// val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList
160// val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList 114// val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList
161// val List<EEnumLiteral> literals = enums.map[ELiterals].flatten.toList 115// val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
162// val List<EReference> references = classes.map[EReferences].flatten.toList 116// val List<EReference> references = classes.map[getEReferences].flatten.toList
163// val List<EAttribute> attributes = classes.map[EAttributes].flatten.toList 117// val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
164// return new EcoreMetamodelDescriptor(classes, #{}, false, enums, literals, references, attributes) 118// return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
165// } 119// }
166// 120//
167// def private static loadQueries(EcoreMetamodelDescriptor metamodel) { 121// def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
168// val i = Pattern.instance 122// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance
169// val patterns = i.specifications.toList 123// val patterns = i.specifications.toList
170// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name == "Constraint"]].toSet 124// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
171// val derivedFeatures = new LinkedHashMap 125// val derivedFeatures = new LinkedHashMap
172// derivedFeatures.put(i.type.internalQueryRepresentation, metamodel.attributes.filter[it.name == "type"].head) 126// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
173// derivedFeatures.put(i.model.internalQueryRepresentation, metamodel.references.filter[it.name == "model"].head) 127// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
174// val res = new ViatraQuerySetDescriptor( 128// val res = new ViatraQuerySetDescriptor(
175// patterns, 129// patterns,
176// wfPatterns, 130// wfPatterns,
@@ -178,36 +132,37 @@
178// ) 132// )
179// return res 133// return res
180// } 134// }
181// 135//
182// def static loadPartialModel(ReasonerWorkspace inputs) { 136// def static loadPartialModel(ReasonerWorkspace inputs) {
183// Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); 137// Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
184// inputs.readModel(EObject, "FAM.xmi").eResource.allContents.toList 138// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList
185// } 139// }
186// 140//
187// def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List<EObject> models) { 141// def static writeSolution(LogicResult solution, ReasonerWorkspace workspace, List<EObject> models) {
188// if (solution instanceof ModelResult) { 142// if(solution instanceof ModelResult) {
189// val representations = solution.representation 143// val representations = solution.representation
190// for (representationIndex : 0 ..< representations.size) { 144// for(representationIndex : 0..<representations.size) {
191// val representation = representations.get(representationIndex) 145// val representation = representations.get(representationIndex)
192// val representationNumber = representationIndex + 1 146// val representationNumber = representationIndex + 1
193// if (representation instanceof PartialInterpretation) { 147// if(representation instanceof PartialInterpretation) {
194// workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''') 148// workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''')
195// val partialInterpretation2GML = new PartialInterpretation2Gml 149// val partialInterpretation2GML = new PartialInterpretation2Gml
196// val gml = partialInterpretation2GML.transform(representation) 150// val gml = partialInterpretation2GML.transform(representation)
197// // ecore2GML.transform(root) 151// //ecore2GML.transform(root)
198// workspace.writeText('''solutionVisualisation.gml''', gml) 152// workspace.writeText('''solutionVisualisation.gml''',gml)
199// 153//
200// } else { 154// } else {
201// workspace.writeText('''solution«representationNumber».txt''', representation.toString) 155// workspace.writeText('''solution«representationNumber».txt''',representation.toString)
202// } 156// }
203// } 157// }
204// for (model : models) { 158// for(model : models) {
205// workspace.writeModel(model, "model.xmi") 159// workspace.writeModel(model,"model.xmi")
206// } 160// }
207// println("Solution saved and visualised") 161// println("Solution saved and visualised")
208// } 162// }
209// } 163// }
210// 164//
211// def static visualizeSolution() { 165// def static visualizeSolution() {
166//
212// } 167// }
213//} 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
index 64914fd0..3d36bbf7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend
@@ -50,7 +50,7 @@ class VampireTest {
50 50
51 var LogicProblem problem = builder.createProblem 51 var LogicProblem problem = builder.createProblem
52 52
53 //* 53 /*
54 deMorgan(problem) 54 deMorgan(problem)
55 /*/ 55 /*/
56 rockPaperScisors(problem) 56 rockPaperScisors(problem)
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..01664d90
--- /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
index b60ffe4c..6a36d4d4 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
index 881f927c..93a2e4f4 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
index f3c47b99..15b5afc4 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.gitignore
@@ -1,2 +1,4 @@
1/.VampireTest.java._trace 1/.VampireTest.java._trace
2/.SimpleRun.java._trace 2/.SimpleRun.java._trace
3/.DslTest.java._trace
4/.MedicalSystem.java._trace
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.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/DslTest.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..d4f53d65
--- /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("outputModels/");
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 = false;
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
index 73c413b3..d02174f7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.java
@@ -63,7 +63,7 @@ public class VampireTest {
63 final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem"); 63 final URI logicURI = URI.createFileURI("output/files/logProb.logicproblem");
64 final Resource logRes = rs.createResource(logicURI); 64 final Resource logRes = rs.createResource(logicURI);
65 LogicProblem problem = VampireTest.builder.createProblem(); 65 LogicProblem problem = VampireTest.builder.createProblem();
66 VampireTest.deMorgan(problem); 66 VampireTest.rockPaperScisors(problem);
67 logRes.getContents().add(problem); 67 logRes.getContents().add(problem);
68 logRes.save(Collections.EMPTY_MAP); 68 logRes.save(Collections.EMPTY_MAP);
69 InputOutput.<String>println("Problem Created"); 69 InputOutput.<String>println("Problem Created");
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