diff options
Diffstat (limited to 'Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug')
4 files changed, 0 insertions, 1205 deletions
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/errors.txt b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/errors.txt deleted file mode 100644 index 87a7ed57..00000000 --- a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/errors.txt +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | Error occured (IllegalArgumentException): TypeConstraint applicable for enumerable input keys only; received instead org.eclipse.viatra.query.patternlanguage.emf.types.BottomTypeKey@3ba3f40d | ||
2 | org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint.<init>(TypeConstraint.java:42) | ||
3 | org.eclipse.viatra.query.patternlanguage.emf.specification.internal.EPMToPBody.acceptTypeConstraint(EPMToPBody.java:115) | ||
4 | org.eclipse.viatra.query.patternlanguage.emf.specification.internal.PatternBodyTransformer.preprocessParameters(PatternBodyTransformer.java:168) | ||
5 | org.eclipse.viatra.query.patternlanguage.emf.specification.internal.PatternBodyTransformer.transform(PatternBodyTransformer.java:123) | ||
6 | org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder.getBodies(SpecificationBuilder.java:300) | ||
7 | org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder.buildBodies(SpecificationBuilder.java:286) | ||
8 | org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder.buildSpecification(SpecificationBuilder.java:197) | ||
9 | org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder.lambda$4(SpecificationBuilder.java:157) | ||
10 | java.util.Optional.orElseGet(Optional.java:267) | ||
11 | org.eclipse.viatra.query.patternlanguage.emf.specification.SpecificationBuilder.getOrCreateSpecification(SpecificationBuilder.java:157) | ||
12 | hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.util.ParseUtil.createSpecification(ParseUtil.java:114) | ||
13 | hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.util.ParseUtil.parse(ParseUtil.java:101) | ||
14 | hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.patterns.PatternProvider.generateQueries(PatternProvider.java:66) | ||
15 | hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.ModelGenerationMethodProvider.createModelGenerationMethod(ModelGenerationMethodProvider.java:57) | ||
16 | hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner.solve(ViatraReasoner.java:97) | ||
17 | hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:316) | ||
18 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:129) | ||
19 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:338) | ||
20 | hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:110) | ||
21 | hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:149) | ||
22 | run.FamilyTreeGen.main(FamilyTreeGen.java:7) | ||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/generated3valued.vql_deactivated b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/generated3valued.vql_deactivated deleted file mode 100644 index 315a1e15..00000000 --- a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/generated3valued.vql_deactivated +++ /dev/null | |||
@@ -1,792 +0,0 @@ | |||
1 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
2 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
3 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
4 | |||
5 | ////////// | ||
6 | // 0. Util | ||
7 | ////////// | ||
8 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
9 | PartialInterpretation.problem(interpretation,problem); | ||
10 | } | ||
11 | |||
12 | ///////////////////////// | ||
13 | // 0.1 Existence | ||
14 | ///////////////////////// | ||
15 | /** [[exist(element)]]=1 */ | ||
16 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17 | find interpretation(problem,interpretation); | ||
18 | LogicProblem.elements(problem,element); | ||
19 | } or { | ||
20 | find interpretation(problem,interpretation); | ||
21 | PartialInterpretation.newElements(interpretation,element); | ||
22 | } | ||
23 | |||
24 | /** [[exist(element)]]>=1/2 */ | ||
25 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26 | find mustExist(problem,interpretation,element); | ||
27 | } or { | ||
28 | find interpretation(problem,interpretation); | ||
29 | neg find elementCloseWorld(element); | ||
30 | PartialInterpretation.openWorldElements(interpretation,element); | ||
31 | } | ||
32 | |||
33 | private pattern elementCloseWorld(element:DefinedElement) { | ||
34 | PartialInterpretation.openWorldElements(i,element); | ||
35 | PartialInterpretation.maxNewElements(i,0); | ||
36 | } or { | ||
37 | Scope.targetTypeInterpretation(scope,interpretation); | ||
38 | PartialTypeInterpratation.elements(interpretation,element); | ||
39 | Scope.maxNewElements(scope,0); | ||
40 | } | ||
41 | |||
42 | //////////////////////// | ||
43 | // 0.2 Equivalence | ||
44 | //////////////////////// | ||
45 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) | ||
46 | // For non-primitive type. Boolean types always must equivalent or cannot equivalent | ||
47 | { | ||
48 | find mayExist(problem,interpretation,a); | ||
49 | find mayExist(problem,interpretation,b); | ||
50 | a == b; | ||
51 | } or { | ||
52 | find mayExist(problem,interpretation,a); | ||
53 | find mayExist(problem,interpretation,b); | ||
54 | IntegerElement(a); | ||
55 | IntegerElement(b); | ||
56 | PrimitiveElement.valueSet(a,false); | ||
57 | } or { | ||
58 | find mayExist(problem,interpretation,a); | ||
59 | find mayExist(problem,interpretation,b); | ||
60 | IntegerElement(a); | ||
61 | IntegerElement(b); | ||
62 | PrimitiveElement.valueSet(b,false); | ||
63 | } or { | ||
64 | find mayExist(problem,interpretation,a); | ||
65 | find mayExist(problem,interpretation,b); | ||
66 | RealElement(a); | ||
67 | RealElement(b); | ||
68 | PrimitiveElement.valueSet(a,false); | ||
69 | } or { | ||
70 | find mayExist(problem,interpretation,a); | ||
71 | find mayExist(problem,interpretation,b); | ||
72 | RealElement(a); | ||
73 | RealElement(b); | ||
74 | PrimitiveElement.valueSet(b,false); | ||
75 | } or { | ||
76 | find mayExist(problem,interpretation,a); | ||
77 | find mayExist(problem,interpretation,b); | ||
78 | RealElement(a); | ||
79 | IntegerElement(b); | ||
80 | PrimitiveElement.valueSet(a,false); | ||
81 | } or { | ||
82 | find mayExist(problem,interpretation,a); | ||
83 | find mayExist(problem,interpretation,b); | ||
84 | RealElement(a); | ||
85 | IntegerElement(b); | ||
86 | PrimitiveElement.valueSet(b,false); | ||
87 | } or { | ||
88 | find mayExist(problem,interpretation,a); | ||
89 | find mayExist(problem,interpretation,b); | ||
90 | IntegerElement(a); | ||
91 | RealElement(b); | ||
92 | PrimitiveElement.valueSet(a,false); | ||
93 | } or { | ||
94 | find mayExist(problem,interpretation,a); | ||
95 | find mayExist(problem,interpretation,b); | ||
96 | IntegerElement(a); | ||
97 | RealElement(b); | ||
98 | PrimitiveElement.valueSet(b,false); | ||
99 | } or { | ||
100 | find mayExist(problem,interpretation,a); | ||
101 | find mayExist(problem,interpretation,b); | ||
102 | StringElement(a); | ||
103 | StringElement(b); | ||
104 | PrimitiveElement.valueSet(a,false); | ||
105 | } or { | ||
106 | find mayExist(problem,interpretation,a); | ||
107 | find mayExist(problem,interpretation,b); | ||
108 | StringElement(a); | ||
109 | StringElement(b); | ||
110 | PrimitiveElement.valueSet(b,false); | ||
111 | } | ||
112 | |||
113 | pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) { | ||
114 | // For non-primitive and Boolean primitive type | ||
115 | find mustExist(problem,interpretation,a); | ||
116 | find mustExist(problem,interpretation,b); | ||
117 | a == b; | ||
118 | } or { | ||
119 | find mustExist(problem,interpretation,a); | ||
120 | find mustExist(problem,interpretation,b); | ||
121 | PrimitiveElement.valueSet(a,true); | ||
122 | PrimitiveElement.valueSet(b,true); | ||
123 | IntegerElement.value(a,value); | ||
124 | IntegerElement.value(b,value); | ||
125 | } or { | ||
126 | find mustExist(problem,interpretation,a); | ||
127 | find mustExist(problem,interpretation,b); | ||
128 | PrimitiveElement.valueSet(a,true); | ||
129 | PrimitiveElement.valueSet(b,true); | ||
130 | RealElement.value(a,value); | ||
131 | RealElement.value(b,value); | ||
132 | } or { | ||
133 | find mustExist(problem,interpretation,a); | ||
134 | find mustExist(problem,interpretation,b); | ||
135 | PrimitiveElement.valueSet(a,true); | ||
136 | PrimitiveElement.valueSet(b,true); | ||
137 | RealElement.value(a,value); | ||
138 | IntegerElement.value(b,value); | ||
139 | } or { | ||
140 | find mustExist(problem,interpretation,a); | ||
141 | find mustExist(problem,interpretation,b); | ||
142 | PrimitiveElement.valueSet(a,true); | ||
143 | PrimitiveElement.valueSet(b,true); | ||
144 | IntegerElement.value(a,value); | ||
145 | RealElement.value(b,value); | ||
146 | } or { | ||
147 | find mustExist(problem,interpretation,a); | ||
148 | find mustExist(problem,interpretation,b); | ||
149 | PrimitiveElement.valueSet(a,true); | ||
150 | PrimitiveElement.valueSet(b,true); | ||
151 | StringElement.value(a,value); | ||
152 | StringElement.value(b,value); | ||
153 | } | ||
154 | |||
155 | ////////// | ||
156 | // 1. Problem-Specific Base Indexers | ||
157 | ////////// | ||
158 | // 1.1 Type Indexers | ||
159 | ////////// | ||
160 | // 1.1.1 Required Patterns by TypeIndexer | ||
161 | ////////// | ||
162 | private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) { | ||
163 | find interpretation(problem,interpretation); | ||
164 | LogicProblem.types(problem,type); | ||
165 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
166 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
167 | } | ||
168 | |||
169 | private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) { | ||
170 | find interpretation(problem,interpretation); | ||
171 | LogicProblem.types(problem,type); | ||
172 | TypeDefinition.elements(type,element); | ||
173 | } or { | ||
174 | find interpretation(problem,interpretation); | ||
175 | find typeInterpretation(problem,interpretation,type,typeInterpretation); | ||
176 | PartialComplexTypeInterpretation.elements(typeInterpretation,element); | ||
177 | } | ||
178 | |||
179 | private pattern isPrimitive(element: PrimitiveElement) { | ||
180 | PrimitiveElement(element); | ||
181 | } | ||
182 | ////////// | ||
183 | // 1.1.2 primitive Type Indexers | ||
184 | ////////// | ||
185 | // Currently unused. Refer primitive types as: | ||
186 | // > PrimitiveElement(element) | ||
187 | // specific types are referred as: | ||
188 | // > BooleanElement(variableName) | ||
189 | // > IntegerElement(variableName) | ||
190 | // > RealElement(variableName) | ||
191 | // > StringElement(variableName) | ||
192 | // And their value as | ||
193 | // > BooleanElement.value(variableName,value) | ||
194 | // > IntegerElement.value(variableName,value) | ||
195 | // > RealElement.value(variableName,value) | ||
196 | // > StringElement.value(variableName,value) | ||
197 | // Whether a value is set is defined by: | ||
198 | // > PrimitiveElement.valueSet(variableName,isFilled); | ||
199 | ////////// | ||
200 | // 1.1.3 domain-specific Type Indexers | ||
201 | ////////// | ||
202 | /** | ||
203 | * An element must be an instance of type "FamilyTree class". | ||
204 | */ | ||
205 | private pattern mustInstanceOfFamilyTree_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
206 | Type.name(type,"FamilyTree class"); | ||
207 | find directInstanceOf(problem,interpretation,element,type); | ||
208 | } | ||
209 | private pattern scopeDisallowsNewFamilyTree_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
210 | find interpretation(problem,interpretation); | ||
211 | PartialInterpretation.scopes(interpretation,scope); | ||
212 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
213 | Scope.maxNewElements(scope,0); | ||
214 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
215 | Type.name(type,"FamilyTree class"); | ||
216 | } | ||
217 | |||
218 | /** | ||
219 | * An element may be an instance of type "FamilyTree class". | ||
220 | */ | ||
221 | private pattern mayInstanceOfFamilyTree_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
222 | { | ||
223 | find interpretation(problem,interpretation); | ||
224 | PartialInterpretation.newElements(interpretation,element); | ||
225 | neg find mustInstanceOfMember_class(problem,interpretation,element); | ||
226 | neg find scopeDisallowsNewFamilyTree_class(problem, interpretation); | ||
227 | neg find isPrimitive(element); | ||
228 | } or { | ||
229 | find interpretation(problem,interpretation); | ||
230 | PartialInterpretation.openWorldElements(interpretation,element); | ||
231 | neg find mustInstanceOfMember_class(problem,interpretation,element); | ||
232 | neg find scopeDisallowsNewFamilyTree_class(problem, interpretation); | ||
233 | neg find isPrimitive(element); | ||
234 | } or | ||
235 | { find mustInstanceOfFamilyTree_class(problem,interpretation,element); } | ||
236 | /** | ||
237 | * An element must be an instance of type "Member class". | ||
238 | */ | ||
239 | private pattern mustInstanceOfMember_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
240 | Type.name(type,"Member class"); | ||
241 | find directInstanceOf(problem,interpretation,element,type); | ||
242 | } | ||
243 | private pattern scopeDisallowsNewMember_class(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
244 | find interpretation(problem,interpretation); | ||
245 | PartialInterpretation.scopes(interpretation,scope); | ||
246 | Scope.targetTypeInterpretation(scope,typeInterpretation); | ||
247 | Scope.maxNewElements(scope,0); | ||
248 | PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type); | ||
249 | Type.name(type,"Member class"); | ||
250 | } | ||
251 | |||
252 | /** | ||
253 | * An element may be an instance of type "Member class". | ||
254 | */ | ||
255 | private pattern mayInstanceOfMember_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) | ||
256 | { | ||
257 | find interpretation(problem,interpretation); | ||
258 | PartialInterpretation.newElements(interpretation,element); | ||
259 | neg find mustInstanceOfFamilyTree_class(problem,interpretation,element); | ||
260 | neg find scopeDisallowsNewMember_class(problem, interpretation); | ||
261 | neg find isPrimitive(element); | ||
262 | } or { | ||
263 | find interpretation(problem,interpretation); | ||
264 | PartialInterpretation.openWorldElements(interpretation,element); | ||
265 | neg find mustInstanceOfFamilyTree_class(problem,interpretation,element); | ||
266 | neg find scopeDisallowsNewMember_class(problem, interpretation); | ||
267 | neg find isPrimitive(element); | ||
268 | } or | ||
269 | { find mustInstanceOfMember_class(problem,interpretation,element); } | ||
270 | |||
271 | ////////// | ||
272 | // 1.2 Relation Declaration Indexers | ||
273 | ////////// | ||
274 | /** | ||
275 | * Matcher for detecting tuples t where []members reference FamilyTree(source,target) | ||
276 | */ | ||
277 | private pattern mustInRelationmembers_reference_FamilyTree( | ||
278 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
279 | source: DefinedElement, target:DefinedElement) | ||
280 | { | ||
281 | find interpretation(problem,interpretation); | ||
282 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
283 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"members reference FamilyTree"); | ||
284 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
285 | BinaryElementRelationLink.param1(link,source); | ||
286 | BinaryElementRelationLink.param2(link,target); | ||
287 | } | ||
288 | /** | ||
289 | * Matcher for detecting tuples t where <>members reference FamilyTree(source,target) | ||
290 | */ | ||
291 | private pattern mayInRelationmembers_reference_FamilyTree( | ||
292 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
293 | source: DefinedElement, target:DefinedElement) | ||
294 | { | ||
295 | find interpretation(problem,interpretation); | ||
296 | // The two endpoint of the link have to exist | ||
297 | find mayExist(problem, interpretation, source); | ||
298 | find mayExist(problem, interpretation, target); | ||
299 | // Type consistency | ||
300 | find mayInstanceOfFamilyTree_class(problem,interpretation,source); | ||
301 | find mayInstanceOfMember_class(problem,interpretation,target); | ||
302 | // The reference is containment, then a new reference cannot be create if: | ||
303 | // 1. Multiple parents | ||
304 | neg find mustContains4(problem,interpretation,_,target); | ||
305 | // 2. Circle in the containment hierarchy | ||
306 | neg find mustTransitiveContains(source,target); | ||
307 | } or { | ||
308 | find mustInRelationmembers_reference_FamilyTree(problem,interpretation,source,target); | ||
309 | } | ||
310 | /** | ||
311 | * Matcher for detecting tuples t where []children reference Member(source,target) | ||
312 | */ | ||
313 | private pattern mustInRelationchildren_reference_Member( | ||
314 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
315 | source: DefinedElement, target:DefinedElement) | ||
316 | { | ||
317 | find interpretation(problem,interpretation); | ||
318 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
319 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"children reference Member"); | ||
320 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
321 | BinaryElementRelationLink.param1(link,source); | ||
322 | BinaryElementRelationLink.param2(link,target); | ||
323 | } | ||
324 | /** | ||
325 | * Matcher for detecting tuples t where <>children reference Member(source,target) | ||
326 | */ | ||
327 | private pattern mayInRelationchildren_reference_Member( | ||
328 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
329 | source: DefinedElement, target:DefinedElement) | ||
330 | { | ||
331 | find interpretation(problem,interpretation); | ||
332 | // The two endpoint of the link have to exist | ||
333 | find mayExist(problem, interpretation, source); | ||
334 | find mayExist(problem, interpretation, target); | ||
335 | // Type consistency | ||
336 | find mayInstanceOfMember_class(problem,interpretation,source); | ||
337 | find mayInstanceOfMember_class(problem,interpretation,target); | ||
338 | // There are "numberOfExistingReferences" currently existing instances of the reference to the target, | ||
339 | // the upper bound of the opposite reference multiplicity should be considered. | ||
340 | numberOfExistingOppositeReferences == count find mustInRelationparents_reference_Member(problem,interpretation,target,_); | ||
341 | check(numberOfExistingOppositeReferences < 2); | ||
342 | } or { | ||
343 | find mustInRelationchildren_reference_Member(problem,interpretation,source,target); | ||
344 | } | ||
345 | /** | ||
346 | * Matcher for detecting tuples t where []parents reference Member(source,target) | ||
347 | */ | ||
348 | private pattern mustInRelationparents_reference_Member( | ||
349 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
350 | source: DefinedElement, target:DefinedElement) | ||
351 | { | ||
352 | find interpretation(problem,interpretation); | ||
353 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
354 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parents reference Member"); | ||
355 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
356 | BinaryElementRelationLink.param1(link,source); | ||
357 | BinaryElementRelationLink.param2(link,target); | ||
358 | } | ||
359 | /** | ||
360 | * Matcher for detecting tuples t where <>parents reference Member(source,target) | ||
361 | */ | ||
362 | private pattern mayInRelationparents_reference_Member( | ||
363 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
364 | source: DefinedElement, target:DefinedElement) | ||
365 | { | ||
366 | find interpretation(problem,interpretation); | ||
367 | // The two endpoint of the link have to exist | ||
368 | find mayExist(problem, interpretation, source); | ||
369 | find mayExist(problem, interpretation, target); | ||
370 | // Type consistency | ||
371 | find mayInstanceOfMember_class(problem,interpretation,source); | ||
372 | find mayInstanceOfMember_class(problem,interpretation,target); | ||
373 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
374 | // the upper bound of the multiplicity should be considered. | ||
375 | numberOfExistingReferences == count find mustInRelationparents_reference_Member(problem,interpretation,source,_); | ||
376 | check(numberOfExistingReferences < 2); | ||
377 | } or { | ||
378 | find mustInRelationparents_reference_Member(problem,interpretation,source,target); | ||
379 | } | ||
380 | /** | ||
381 | * Matcher for detecting tuples t where []name attribute Member(source,target) | ||
382 | */ | ||
383 | private pattern mustInRelationname_attribute_Member( | ||
384 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
385 | source: DefinedElement, target:DefinedElement) | ||
386 | { | ||
387 | find interpretation(problem,interpretation); | ||
388 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
389 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute Member"); | ||
390 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
391 | BinaryElementRelationLink.param1(link,source); | ||
392 | BinaryElementRelationLink.param2(link,target); | ||
393 | } | ||
394 | /** | ||
395 | * Matcher for detecting tuples t where <>name attribute Member(source,target) | ||
396 | */ | ||
397 | private pattern mayInRelationname_attribute_Member( | ||
398 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
399 | source: DefinedElement, target:DefinedElement) | ||
400 | { | ||
401 | find interpretation(problem,interpretation); | ||
402 | // The two endpoint of the link have to exist | ||
403 | find mayExist(problem, interpretation, source); | ||
404 | find mayExist(problem, interpretation, target); | ||
405 | // Type consistency | ||
406 | find mayInstanceOfMember_class(problem,interpretation,source); | ||
407 | StringElement(target); | ||
408 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
409 | // the upper bound of the multiplicity should be considered. | ||
410 | numberOfExistingReferences == count find mustInRelationname_attribute_Member(problem,interpretation,source,_); | ||
411 | check(numberOfExistingReferences < 1); | ||
412 | } or { | ||
413 | find mustInRelationname_attribute_Member(problem,interpretation,source,target); | ||
414 | } | ||
415 | /** | ||
416 | * Matcher for detecting tuples t where []age attribute Member(source,target) | ||
417 | */ | ||
418 | private pattern mustInRelationage_attribute_Member( | ||
419 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
420 | source: DefinedElement, target:DefinedElement) | ||
421 | { | ||
422 | find interpretation(problem,interpretation); | ||
423 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
424 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"age attribute Member"); | ||
425 | PartialRelationInterpretation.relationlinks(relationIterpretation,link); | ||
426 | BinaryElementRelationLink.param1(link,source); | ||
427 | BinaryElementRelationLink.param2(link,target); | ||
428 | } | ||
429 | /** | ||
430 | * Matcher for detecting tuples t where <>age attribute Member(source,target) | ||
431 | */ | ||
432 | private pattern mayInRelationage_attribute_Member( | ||
433 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
434 | source: DefinedElement, target:DefinedElement) | ||
435 | { | ||
436 | find interpretation(problem,interpretation); | ||
437 | // The two endpoint of the link have to exist | ||
438 | find mayExist(problem, interpretation, source); | ||
439 | find mayExist(problem, interpretation, target); | ||
440 | // Type consistency | ||
441 | find mayInstanceOfMember_class(problem,interpretation,source); | ||
442 | IntegerElement(target); | ||
443 | // There are "numberOfExistingReferences" currently existing instances of the reference from the source, | ||
444 | // the upper bound of the multiplicity should be considered. | ||
445 | numberOfExistingReferences == count find mustInRelationage_attribute_Member(problem,interpretation,source,_); | ||
446 | check(numberOfExistingReferences < 1); | ||
447 | } or { | ||
448 | find mustInRelationage_attribute_Member(problem,interpretation,source,target); | ||
449 | } | ||
450 | |||
451 | ////////// | ||
452 | // 1.3 Relation Definition Indexers | ||
453 | ////////// | ||
454 | // Must, May and Current queries for pattern queries memberIsItsOwnParent | ||
455 | private pattern mustInRelation_pattern_queries_memberIsItsOwnParent( | ||
456 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
457 | var_m) | ||
458 | { | ||
459 | find interpretation(problem,interpretation); | ||
460 | var_m == var_p; | ||
461 | find mustInRelationmembers_reference_FamilyTree(problem,interpretation,_var__0,var_p); | ||
462 | find mustInRelationparents_reference_Member(problem,interpretation,var_p,var_p); | ||
463 | } | ||
464 | private pattern mayInRelation_pattern_queries_memberIsItsOwnParent( | ||
465 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
466 | var_m) | ||
467 | { | ||
468 | find interpretation(problem,interpretation); | ||
469 | var_m == var_p; | ||
470 | find mayInRelationmembers_reference_FamilyTree(problem,interpretation,_var__0,var_p); | ||
471 | find mayInRelationparents_reference_Member(problem,interpretation,var_p,var_p); | ||
472 | } | ||
473 | private pattern currentInRelation_pattern_queries_memberIsItsOwnParent( | ||
474 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
475 | var_m) | ||
476 | { | ||
477 | find interpretation(problem,interpretation); | ||
478 | var_m == var_p; | ||
479 | find mustInRelationmembers_reference_FamilyTree(problem,interpretation,_var__0,var_p); | ||
480 | find mustInRelationparents_reference_Member(problem,interpretation,var_p,var_p); | ||
481 | } | ||
482 | // Must, May and Current queries for pattern queries twoMembersHaveNoParent | ||
483 | private pattern mustInRelation_pattern_queries_twoMembersHaveNoParent( | ||
484 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
485 | var_m1, var_m2) | ||
486 | { | ||
487 | find interpretation(problem,interpretation); | ||
488 | // var_m1 exported | ||
489 | // var_m2 exported | ||
490 | find mustInstanceOfMember_class(problem,interpretation,var_m1); | ||
491 | find mustInstanceOfMember_class(problem,interpretation,var_m2); | ||
492 | neg find mayInRelation_pattern_queries_memberHasParent(problem,interpretation,var_m1); | ||
493 | neg find mayInRelation_pattern_queries_memberHasParent(problem,interpretation,var_m2); | ||
494 | neg find mayEquivalent(problem, interpretation, var_m1, var_m2); | ||
495 | } | ||
496 | private pattern mayInRelation_pattern_queries_twoMembersHaveNoParent( | ||
497 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
498 | var_m1, var_m2) | ||
499 | { | ||
500 | find interpretation(problem,interpretation); | ||
501 | // var_m1 exported | ||
502 | // var_m2 exported | ||
503 | find mayInstanceOfMember_class(problem,interpretation,var_m1); | ||
504 | find mayInstanceOfMember_class(problem,interpretation,var_m2); | ||
505 | neg find mustInRelation_pattern_queries_memberHasParent(problem,interpretation,var_m1); | ||
506 | neg find mustInRelation_pattern_queries_memberHasParent(problem,interpretation,var_m2); | ||
507 | neg find mustEquivalent(problem, interpretation, var_m1, var_m2); | ||
508 | } | ||
509 | private pattern currentInRelation_pattern_queries_twoMembersHaveNoParent( | ||
510 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
511 | var_m1, var_m2) | ||
512 | { | ||
513 | find interpretation(problem,interpretation); | ||
514 | // var_m1 exported | ||
515 | // var_m2 exported | ||
516 | find mustInstanceOfMember_class(problem,interpretation,var_m1); | ||
517 | find mustInstanceOfMember_class(problem,interpretation,var_m2); | ||
518 | neg find currentInRelation_pattern_queries_memberHasParent(problem,interpretation,var_m1); | ||
519 | neg find currentInRelation_pattern_queries_memberHasParent(problem,interpretation,var_m2); | ||
520 | neg find mustEquivalent(problem, interpretation, var_m1, var_m2); | ||
521 | } | ||
522 | // Must, May and Current queries for pattern queries memberHasParent | ||
523 | private pattern mustInRelation_pattern_queries_memberHasParent( | ||
524 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
525 | var_m) | ||
526 | { | ||
527 | find interpretation(problem,interpretation); | ||
528 | // var_m exported | ||
529 | find mustInRelationparents_reference_Member(problem,interpretation,var_m,var__0); | ||
530 | find mustInstanceOfMember_class(problem,interpretation,var__0); | ||
531 | } | ||
532 | private pattern mayInRelation_pattern_queries_memberHasParent( | ||
533 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
534 | var_m) | ||
535 | { | ||
536 | find interpretation(problem,interpretation); | ||
537 | // var_m exported | ||
538 | find mayInRelationparents_reference_Member(problem,interpretation,var_m,var__0); | ||
539 | find mayInstanceOfMember_class(problem,interpretation,var__0); | ||
540 | } | ||
541 | private pattern currentInRelation_pattern_queries_memberHasParent( | ||
542 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
543 | var_m) | ||
544 | { | ||
545 | find interpretation(problem,interpretation); | ||
546 | // var_m exported | ||
547 | find mustInRelationparents_reference_Member(problem,interpretation,var_m,var__0); | ||
548 | find mustInstanceOfMember_class(problem,interpretation,var__0); | ||
549 | } | ||
550 | // Must, May and Current queries for pattern queries parentTooYoung | ||
551 | private pattern mustInRelation_pattern_queries_parentTooYoung( | ||
552 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
553 | var_m, var_p) | ||
554 | { | ||
555 | find interpretation(problem,interpretation); | ||
556 | // var_m exported | ||
557 | // var_p exported | ||
558 | find mustInRelationmembers_reference_FamilyTree(problem,interpretation,_var__0,var_m); | ||
559 | find mustInRelationparents_reference_Member(problem,interpretation,var_m,var_p); | ||
560 | find mustInRelationage_attribute_Member(problem,interpretation,var_m,var_mAge); | ||
561 | find mustInRelationage_attribute_Member(problem,interpretation,var_p,var_pAge); | ||
562 | PrimitiveElement.valueSet(var_mAge,true); IntegerElement.value(var_mAge,value_var_mAge); | ||
563 | PrimitiveElement.valueSet(var_pAge,true); IntegerElement.value(var_pAge,value_var_pAge); | ||
564 | check((value_var_mAge<=(value_var_pAge+12))); | ||
565 | } | ||
566 | private pattern mayInRelation_pattern_queries_parentTooYoung( | ||
567 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
568 | var_m, var_p) | ||
569 | { | ||
570 | find interpretation(problem,interpretation); | ||
571 | // var_m exported | ||
572 | // var_p exported | ||
573 | find mayInRelationmembers_reference_FamilyTree(problem,interpretation,_var__0,var_m); | ||
574 | find mayInRelationparents_reference_Member(problem,interpretation,var_m,var_p); | ||
575 | find mayInRelationage_attribute_Member(problem,interpretation,var_m,var_mAge); | ||
576 | find mayInRelationage_attribute_Member(problem,interpretation,var_p,var_pAge); | ||
577 | PrimitiveElement.valueSet(var_mAge,setted_var_mAge); IntegerElement.value(var_mAge,value_var_mAge); | ||
578 | PrimitiveElement.valueSet(var_pAge,setted_var_pAge); IntegerElement.value(var_pAge,value_var_pAge); | ||
579 | check( | ||
580 | !setted_var_mAge || !setted_var_pAge | ||
581 | || | ||
582 | ((value_var_mAge<=(value_var_pAge+12))) | ||
583 | ); | ||
584 | } | ||
585 | private pattern currentInRelation_pattern_queries_parentTooYoung( | ||
586 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
587 | var_m, var_p) | ||
588 | { | ||
589 | find interpretation(problem,interpretation); | ||
590 | // var_m exported | ||
591 | // var_p exported | ||
592 | find mustInRelationmembers_reference_FamilyTree(problem,interpretation,_var__0,var_m); | ||
593 | find mustInRelationparents_reference_Member(problem,interpretation,var_m,var_p); | ||
594 | find mustInRelationage_attribute_Member(problem,interpretation,var_m,var_mAge); | ||
595 | find mustInRelationage_attribute_Member(problem,interpretation,var_p,var_pAge); | ||
596 | PrimitiveElement.valueSet(var_mAge,true); IntegerElement.value(var_mAge,value_var_mAge); | ||
597 | PrimitiveElement.valueSet(var_pAge,true); IntegerElement.value(var_pAge,value_var_pAge); | ||
598 | check((value_var_mAge<=(value_var_pAge+12))); | ||
599 | } | ||
600 | |||
601 | ////////// | ||
602 | // 1.4 Containment Indexer | ||
603 | ////////// | ||
604 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
605 | find mustContains4(_,_,source,target); | ||
606 | } | ||
607 | |||
608 | private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation, | ||
609 | source: DefinedElement, target: DefinedElement) | ||
610 | { find mustInRelationmembers_reference_FamilyTree(problem,interpretation,source,target); } | ||
611 | |||
612 | private pattern mustTransitiveContains(source,target) { | ||
613 | find mustContains2+(source,target); | ||
614 | } | ||
615 | |||
616 | ////////// | ||
617 | // 2. Invalidation Indexers | ||
618 | ////////// | ||
619 | // 2.1 Invalidated by WF Queries | ||
620 | ////////// | ||
621 | pattern invalidatedBy_pattern_queries_memberIsItsOwnParent(problem:LogicProblem, interpretation:PartialInterpretation, | ||
622 | var_m) | ||
623 | { | ||
624 | find mustInRelation_pattern_queries_memberIsItsOwnParent(problem,interpretation,var_m); | ||
625 | } | ||
626 | pattern invalidatedBy_pattern_queries_twoMembersHaveNoParent(problem:LogicProblem, interpretation:PartialInterpretation, | ||
627 | var_m1, var_m2) | ||
628 | { | ||
629 | find mustInRelation_pattern_queries_twoMembersHaveNoParent(problem,interpretation,var_m1,var_m2); | ||
630 | } | ||
631 | pattern invalidatedBy_pattern_queries_parentTooYoung(problem:LogicProblem, interpretation:PartialInterpretation, | ||
632 | var_m, var_p) | ||
633 | { | ||
634 | find mustInRelation_pattern_queries_parentTooYoung(problem,interpretation,var_m,var_p); | ||
635 | } | ||
636 | |||
637 | ////////// | ||
638 | // 3. Unfinishedness Indexers | ||
639 | ////////// | ||
640 | // 3.1 Unfinishedness Measured by Multiplicity | ||
641 | ////////// | ||
642 | |||
643 | ////////// | ||
644 | // 3.2 Unfinishedness Measured by WF Queries | ||
645 | ////////// | ||
646 | pattern unfinishedBy_pattern_queries_memberIsItsOwnParent(problem:LogicProblem, interpretation:PartialInterpretation, | ||
647 | var_m) | ||
648 | { | ||
649 | find currentInRelation_pattern_queries_memberIsItsOwnParent(problem,interpretation,var_m); | ||
650 | } | ||
651 | pattern unfinishedBy_pattern_queries_twoMembersHaveNoParent(problem:LogicProblem, interpretation:PartialInterpretation, | ||
652 | var_m1, var_m2) | ||
653 | { | ||
654 | find currentInRelation_pattern_queries_twoMembersHaveNoParent(problem,interpretation,var_m1,var_m2); | ||
655 | } | ||
656 | pattern unfinishedBy_pattern_queries_parentTooYoung(problem:LogicProblem, interpretation:PartialInterpretation, | ||
657 | var_m, var_p) | ||
658 | { | ||
659 | find currentInRelation_pattern_queries_parentTooYoung(problem,interpretation,var_m,var_p); | ||
660 | } | ||
661 | |||
662 | ////////// | ||
663 | // 4. Refinement Indexers | ||
664 | ////////// | ||
665 | // 4.1 Object constructors | ||
666 | ////////// | ||
667 | private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation) | ||
668 | { | ||
669 | find interpretation(problem,interpretation); | ||
670 | find mustInstanceOfFamilyTree_class(problem,interpretation,root); | ||
671 | find mustExist(problem, interpretation, root); | ||
672 | }or{ | ||
673 | find interpretation(problem,interpretation); | ||
674 | find mustInstanceOfMember_class(problem,interpretation,root); | ||
675 | find mustExist(problem, interpretation, root); | ||
676 | } | ||
677 | pattern createObject_Member_class_by_members_reference_FamilyTree( | ||
678 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
679 | relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation, | ||
680 | container:DefinedElement) | ||
681 | { | ||
682 | find interpretation(problem,interpretation); | ||
683 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
684 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Member class"); | ||
685 | PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation); | ||
686 | PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"members reference FamilyTree"); | ||
687 | find mustInstanceOfFamilyTree_class(problem,interpretation,container); | ||
688 | find mayInstanceOfMember_class(problem,interpretation,newObject); | ||
689 | find mayInRelationmembers_reference_FamilyTree(problem,interpretation,container,newObject); | ||
690 | find mustExist(problem, interpretation, container); | ||
691 | neg find mustExist(problem, interpretation, newObject); | ||
692 | } | ||
693 | pattern createObject_Member_class( | ||
694 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
695 | typeInterpretation:PartialComplexTypeInterpretation) | ||
696 | { | ||
697 | find interpretation(problem,interpretation); | ||
698 | neg find hasElementInContainment(problem,interpretation); | ||
699 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
700 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Member class"); | ||
701 | find mayInstanceOfMember_class(problem,interpretation,newObject); | ||
702 | find mayExist(problem, interpretation, newObject); | ||
703 | neg find mustExist(problem, interpretation, newObject); | ||
704 | } | ||
705 | pattern createObject_FamilyTree_class( | ||
706 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
707 | typeInterpretation:PartialComplexTypeInterpretation) | ||
708 | { | ||
709 | find interpretation(problem,interpretation); | ||
710 | neg find hasElementInContainment(problem,interpretation); | ||
711 | PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation); | ||
712 | PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"FamilyTree class"); | ||
713 | find mayInstanceOfFamilyTree_class(problem,interpretation,newObject); | ||
714 | find mayExist(problem, interpretation, newObject); | ||
715 | neg find mustExist(problem, interpretation, newObject); | ||
716 | } | ||
717 | |||
718 | ////////// | ||
719 | // 4.2 Type refinement | ||
720 | ////////// | ||
721 | pattern refineTypeTo_Member_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
722 | find interpretation(problem,interpretation); | ||
723 | PartialInterpretation.newElements(interpretation,element); | ||
724 | find mayInstanceOfMember_class(problem,interpretation,element); | ||
725 | neg find mustInstanceOfMember_class(problem,interpretation,element); | ||
726 | neg find mustInstanceOfFamilyTree_class(problem,interpretation,element); | ||
727 | } | ||
728 | pattern refineTypeTo_FamilyTree_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) { | ||
729 | find interpretation(problem,interpretation); | ||
730 | PartialInterpretation.newElements(interpretation,element); | ||
731 | find mayInstanceOfFamilyTree_class(problem,interpretation,element); | ||
732 | neg find mustInstanceOfMember_class(problem,interpretation,element); | ||
733 | neg find mustInstanceOfFamilyTree_class(problem,interpretation,element); | ||
734 | } | ||
735 | |||
736 | ////////// | ||
737 | // 4.3 Relation refinement | ||
738 | ////////// | ||
739 | pattern refineRelation_children_reference_Member_and_parents_reference_Member( | ||
740 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
741 | relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation, | ||
742 | from: DefinedElement, to: DefinedElement) | ||
743 | { | ||
744 | find interpretation(problem,interpretation); | ||
745 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
746 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"children reference Member"); | ||
747 | PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation); | ||
748 | PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"parents reference Member"); | ||
749 | find mustExist(problem, interpretation, from); | ||
750 | find mustExist(problem, interpretation, to); | ||
751 | find mustInstanceOfMember_class(problem,interpretation,from); | ||
752 | find mustInstanceOfMember_class(problem,interpretation,to); | ||
753 | find mayInRelationchildren_reference_Member(problem,interpretation,from,to); | ||
754 | neg find mustInRelationchildren_reference_Member(problem,interpretation,from,to); | ||
755 | } | ||
756 | pattern refineRelation_name_attribute_Member( | ||
757 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
758 | relationIterpretation:PartialRelationInterpretation, | ||
759 | from: DefinedElement, to: DefinedElement) | ||
760 | { | ||
761 | find interpretation(problem,interpretation); | ||
762 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
763 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"name attribute Member"); | ||
764 | find mustExist(problem, interpretation, from); | ||
765 | find mustExist(problem, interpretation, to); | ||
766 | find mustInstanceOfMember_class(problem,interpretation,from); | ||
767 | StringElement(to); | ||
768 | find mayInRelationname_attribute_Member(problem,interpretation,from,to); | ||
769 | neg find mustInRelationname_attribute_Member(problem,interpretation,from,to); | ||
770 | } | ||
771 | pattern refineRelation_age_attribute_Member( | ||
772 | problem:LogicProblem, interpretation:PartialInterpretation, | ||
773 | relationIterpretation:PartialRelationInterpretation, | ||
774 | from: DefinedElement, to: DefinedElement) | ||
775 | { | ||
776 | find interpretation(problem,interpretation); | ||
777 | PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation); | ||
778 | PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"age attribute Member"); | ||
779 | find mustExist(problem, interpretation, from); | ||
780 | find mustExist(problem, interpretation, to); | ||
781 | find mustInstanceOfMember_class(problem,interpretation,from); | ||
782 | IntegerElement(to); | ||
783 | find mayInRelationage_attribute_Member(problem,interpretation,from,to); | ||
784 | neg find mustInRelationage_attribute_Member(problem,interpretation,from,to); | ||
785 | } | ||
786 | |||
787 | ////////// | ||
788 | // 5 Unit Propagations | ||
789 | ////////// | ||
790 | |||
791 | // Main propagations: | ||
792 | |||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/generation.logicproblem b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/generation.logicproblem deleted file mode 100644 index d15360ce..00000000 --- a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/generation.logicproblem +++ /dev/null | |||
@@ -1,340 +0,0 @@ | |||
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="FamilyTree class"/> | ||
4 | <types xsi:type="language_1:TypeDeclaration" name="Member class"/> | ||
5 | <assertions name="upperMultiplicity parents Member" annotations="//@annotations.0"> | ||
6 | <value xsi:type="language_1:Forall"> | ||
7 | <quantifiedVariables name="src"> | ||
8 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
9 | </quantifiedVariables> | ||
10 | <quantifiedVariables name="trg 1"> | ||
11 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
12 | </quantifiedVariables> | ||
13 | <quantifiedVariables name="trg 2"> | ||
14 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
15 | </quantifiedVariables> | ||
16 | <quantifiedVariables name="trg 3"> | ||
17 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
18 | </quantifiedVariables> | ||
19 | <expression xsi:type="language_1:Impl"> | ||
20 | <leftOperand xsi:type="language_1:And"> | ||
21 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
22 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
23 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
24 | </operands> | ||
25 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
26 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
27 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
28 | </operands> | ||
29 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
30 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/> | ||
31 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.3"/> | ||
32 | </operands> | ||
33 | </leftOperand> | ||
34 | <rightOperand xsi:type="language_1:Not"> | ||
35 | <operand xsi:type="language_1:Distinct"> | ||
36 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.1"/> | ||
37 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.2"/> | ||
38 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.3"/> | ||
39 | </operand> | ||
40 | </rightOperand> | ||
41 | </expression> | ||
42 | </value> | ||
43 | </assertions> | ||
44 | <assertions name="oppositeReference children Member" annotations="//@annotations.1"> | ||
45 | <value xsi:type="language_1:Forall"> | ||
46 | <quantifiedVariables name="src"> | ||
47 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
48 | </quantifiedVariables> | ||
49 | <quantifiedVariables name="trg"> | ||
50 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
51 | </quantifiedVariables> | ||
52 | <expression xsi:type="language_1:Iff"> | ||
53 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.1"> | ||
54 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
55 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
56 | </leftOperand> | ||
57 | <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
58 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/> | ||
59 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/> | ||
60 | </rightOperand> | ||
61 | </expression> | ||
62 | </value> | ||
63 | </assertions> | ||
64 | <assertions name="upperMultiplicity name Member" annotations="//@annotations.2"> | ||
65 | <value xsi:type="language_1:Forall"> | ||
66 | <quantifiedVariables name="src"> | ||
67 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
68 | </quantifiedVariables> | ||
69 | <quantifiedVariables name="trg 1"> | ||
70 | <range xsi:type="language_1:StringTypeReference"/> | ||
71 | </quantifiedVariables> | ||
72 | <quantifiedVariables name="trg 2"> | ||
73 | <range xsi:type="language_1:StringTypeReference"/> | ||
74 | </quantifiedVariables> | ||
75 | <expression xsi:type="language_1:Impl"> | ||
76 | <leftOperand xsi:type="language_1:And"> | ||
77 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
78 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
79 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
80 | </operands> | ||
81 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3"> | ||
82 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/> | ||
83 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
84 | </operands> | ||
85 | </leftOperand> | ||
86 | <rightOperand xsi:type="language_1:Not"> | ||
87 | <operand xsi:type="language_1:Distinct"> | ||
88 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/> | ||
89 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/> | ||
90 | </operand> | ||
91 | </rightOperand> | ||
92 | </expression> | ||
93 | </value> | ||
94 | </assertions> | ||
95 | <assertions name="upperMultiplicity age Member" annotations="//@annotations.3"> | ||
96 | <value xsi:type="language_1:Forall"> | ||
97 | <quantifiedVariables name="src"> | ||
98 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
99 | </quantifiedVariables> | ||
100 | <quantifiedVariables name="trg 1"> | ||
101 | <range xsi:type="language_1:IntTypeReference"/> | ||
102 | </quantifiedVariables> | ||
103 | <quantifiedVariables name="trg 2"> | ||
104 | <range xsi:type="language_1:IntTypeReference"/> | ||
105 | </quantifiedVariables> | ||
106 | <expression xsi:type="language_1:Impl"> | ||
107 | <leftOperand xsi:type="language_1:And"> | ||
108 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
109 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
110 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
111 | </operands> | ||
112 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
113 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/> | ||
114 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
115 | </operands> | ||
116 | </leftOperand> | ||
117 | <rightOperand xsi:type="language_1:Not"> | ||
118 | <operand xsi:type="language_1:Distinct"> | ||
119 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/> | ||
120 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/> | ||
121 | </operand> | ||
122 | </rightOperand> | ||
123 | </expression> | ||
124 | </value> | ||
125 | </assertions> | ||
126 | <assertions name="errorpattern queries memberIsItsOwnParent" annotations="//@annotations.8"> | ||
127 | <value xsi:type="language_1:Forall"> | ||
128 | <quantifiedVariables name="p0"> | ||
129 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
130 | </quantifiedVariables> | ||
131 | <expression xsi:type="language_1:Not"> | ||
132 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5"> | ||
133 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/> | ||
134 | </operand> | ||
135 | </expression> | ||
136 | </value> | ||
137 | </assertions> | ||
138 | <assertions name="errorpattern queries twoMembersHaveNoParent" annotations="//@annotations.9"> | ||
139 | <value xsi:type="language_1:Forall"> | ||
140 | <quantifiedVariables name="p0"> | ||
141 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
142 | </quantifiedVariables> | ||
143 | <quantifiedVariables name="p1"> | ||
144 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
145 | </quantifiedVariables> | ||
146 | <expression xsi:type="language_1:Not"> | ||
147 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6"> | ||
148 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/> | ||
149 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/> | ||
150 | </operand> | ||
151 | </expression> | ||
152 | </value> | ||
153 | </assertions> | ||
154 | <assertions name="errorpattern queries parentTooYoung" annotations="//@annotations.10"> | ||
155 | <value xsi:type="language_1:Forall"> | ||
156 | <quantifiedVariables name="p0"> | ||
157 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
158 | </quantifiedVariables> | ||
159 | <quantifiedVariables name="p1"> | ||
160 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
161 | </quantifiedVariables> | ||
162 | <expression xsi:type="language_1:Not"> | ||
163 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8"> | ||
164 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/> | ||
165 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.1"/> | ||
166 | </operand> | ||
167 | </expression> | ||
168 | </value> | ||
169 | </assertions> | ||
170 | <relations xsi:type="language_1:RelationDeclaration" name="members reference FamilyTree"> | ||
171 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
172 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
173 | </relations> | ||
174 | <relations xsi:type="language_1:RelationDeclaration" name="children reference Member"> | ||
175 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
176 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
177 | </relations> | ||
178 | <relations xsi:type="language_1:RelationDeclaration" name="parents reference Member"> | ||
179 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
180 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
181 | </relations> | ||
182 | <relations xsi:type="language_1:RelationDeclaration" name="name attribute Member"> | ||
183 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
184 | <parameters xsi:type="language_1:StringTypeReference"/> | ||
185 | </relations> | ||
186 | <relations xsi:type="language_1:RelationDeclaration" name="age attribute Member"> | ||
187 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
188 | <parameters xsi:type="language_1:IntTypeReference"/> | ||
189 | </relations> | ||
190 | <relations xsi:type="language_1:RelationDefinition" name="pattern queries memberIsItsOwnParent" annotations="//@annotations.4"> | ||
191 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
192 | <variables name="parameter m"> | ||
193 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
194 | </variables> | ||
195 | <value xsi:type="language_1:Or"> | ||
196 | <operands xsi:type="language_1:Exists"> | ||
197 | <quantifiedVariables name="variable 0"> | ||
198 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
199 | </quantifiedVariables> | ||
200 | <expression xsi:type="language_1:And"> | ||
201 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
202 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@value/@operands.0/@quantifiedVariables.0"/> | ||
203 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@variables.0"/> | ||
204 | </operands> | ||
205 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
206 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@variables.0"/> | ||
207 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5/@variables.0"/> | ||
208 | </operands> | ||
209 | </expression> | ||
210 | </operands> | ||
211 | </value> | ||
212 | </relations> | ||
213 | <relations xsi:type="language_1:RelationDefinition" name="pattern queries twoMembersHaveNoParent" annotations="//@annotations.5"> | ||
214 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
215 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
216 | <variables name="parameter m1"> | ||
217 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
218 | </variables> | ||
219 | <variables name="parameter m2"> | ||
220 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
221 | </variables> | ||
222 | <value xsi:type="language_1:Or"> | ||
223 | <operands xsi:type="language_1:And"> | ||
224 | <operands xsi:type="language_1:InstanceOf"> | ||
225 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.0"/> | ||
226 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
227 | </operands> | ||
228 | <operands xsi:type="language_1:InstanceOf"> | ||
229 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.1"/> | ||
230 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
231 | </operands> | ||
232 | <operands xsi:type="language_1:Not"> | ||
233 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
234 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.0"/> | ||
235 | </operand> | ||
236 | </operands> | ||
237 | <operands xsi:type="language_1:Not"> | ||
238 | <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7"> | ||
239 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.1"/> | ||
240 | </operand> | ||
241 | </operands> | ||
242 | <operands xsi:type="language_1:Distinct"> | ||
243 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.0"/> | ||
244 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6/@variables.1"/> | ||
245 | </operands> | ||
246 | </operands> | ||
247 | </value> | ||
248 | </relations> | ||
249 | <relations xsi:type="language_1:RelationDefinition" name="pattern queries memberHasParent" annotations="//@annotations.6"> | ||
250 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
251 | <variables name="parameter m"> | ||
252 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
253 | </variables> | ||
254 | <value xsi:type="language_1:Or"> | ||
255 | <operands xsi:type="language_1:Exists"> | ||
256 | <quantifiedVariables name="variable 0"> | ||
257 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
258 | </quantifiedVariables> | ||
259 | <expression xsi:type="language_1:And"> | ||
260 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
261 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7/@variables.0"/> | ||
262 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7/@value/@operands.0/@quantifiedVariables.0"/> | ||
263 | </operands> | ||
264 | <operands xsi:type="language_1:InstanceOf"> | ||
265 | <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7/@value/@operands.0/@quantifiedVariables.0"/> | ||
266 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
267 | </operands> | ||
268 | </expression> | ||
269 | </operands> | ||
270 | </value> | ||
271 | </relations> | ||
272 | <relations xsi:type="language_1:RelationDefinition" name="pattern queries parentTooYoung" annotations="//@annotations.7"> | ||
273 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
274 | <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
275 | <variables name="parameter m"> | ||
276 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
277 | </variables> | ||
278 | <variables name="parameter p"> | ||
279 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/> | ||
280 | </variables> | ||
281 | <value xsi:type="language_1:Or"> | ||
282 | <operands xsi:type="language_1:Exists"> | ||
283 | <quantifiedVariables name="variable 0"> | ||
284 | <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> | ||
285 | </quantifiedVariables> | ||
286 | <quantifiedVariables name="variable mAge"> | ||
287 | <range xsi:type="language_1:IntTypeReference"/> | ||
288 | </quantifiedVariables> | ||
289 | <quantifiedVariables name="variable pAge"> | ||
290 | <range xsi:type="language_1:IntTypeReference"/> | ||
291 | </quantifiedVariables> | ||
292 | <expression xsi:type="language_1:And"> | ||
293 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.0"> | ||
294 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.0"/> | ||
295 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.0"/> | ||
296 | </operands> | ||
297 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.2"> | ||
298 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.0"/> | ||
299 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.1"/> | ||
300 | </operands> | ||
301 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
302 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.0"/> | ||
303 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.1"/> | ||
304 | </operands> | ||
305 | <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4"> | ||
306 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@variables.1"/> | ||
307 | <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.2"/> | ||
308 | </operands> | ||
309 | <operands xsi:type="language_1:LessOrEqualThan"> | ||
310 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.1"/> | ||
311 | <rightOperand xsi:type="language_1:Plus"> | ||
312 | <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8/@value/@operands.0/@quantifiedVariables.2"/> | ||
313 | <rightOperand xsi:type="language_1:IntLiteral" value="12"/> | ||
314 | </rightOperand> | ||
315 | </operands> | ||
316 | </expression> | ||
317 | </operands> | ||
318 | </value> | ||
319 | </relations> | ||
320 | <containmentHierarchies typesOrderedInHierarchy="//@types.0 //@types.1" containmentRelations="//@relations.0"/> | ||
321 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.2" upper="2"/> | ||
322 | <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.1" inverseA="//@relations.1" inverseB="//@relations.2"/> | ||
323 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.3" upper="1"/> | ||
324 | <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.4" upper="1"/> | ||
325 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.5" patternFullyQualifiedName="queries.memberIsItsOwnParent"> | ||
326 | <variableTrace targetLogicVariable="//@relations.5/@value/@operands.0/@quantifiedVariables.0"/> | ||
327 | </annotations> | ||
328 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.6" patternFullyQualifiedName="queries.twoMembersHaveNoParent"/> | ||
329 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.7" patternFullyQualifiedName="queries.memberHasParent"> | ||
330 | <variableTrace targetLogicVariable="//@relations.7/@value/@operands.0/@quantifiedVariables.0"/> | ||
331 | </annotations> | ||
332 | <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.8" patternFullyQualifiedName="queries.parentTooYoung"> | ||
333 | <variableTrace targetLogicVariable="//@relations.8/@value/@operands.0/@quantifiedVariables.0"/> | ||
334 | <variableTrace targetLogicVariable="//@relations.8/@value/@operands.0/@quantifiedVariables.1"/> | ||
335 | <variableTrace targetLogicVariable="//@relations.8/@value/@operands.0/@quantifiedVariables.2"/> | ||
336 | </annotations> | ||
337 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.4" query="//@annotations.4"/> | ||
338 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.5" query="//@annotations.5"/> | ||
339 | <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.6" query="//@annotations.7"/> | ||
340 | </language:LogicProblem> | ||
diff --git a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/init.partialmodel b/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/init.partialmodel deleted file mode 100644 index df908518..00000000 --- a/Tests/MODELS2020-CaseStudies/case.study.familyTree.run/outputs/debug/init.partialmodel +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="ASCII"?> | ||
2 | <partialinterpretation:PartialInterpretation 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/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="6" maxNewElements="6"> | ||
3 | <problem href="outputs/debug/generation.logicproblem#/"/> | ||
4 | <partialrelationinterpretation> | ||
5 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.0"/> | ||
6 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.0"/> | ||
7 | <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.0/@parameters.1"/> | ||
8 | </partialrelationinterpretation> | ||
9 | <partialrelationinterpretation> | ||
10 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.1"/> | ||
11 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.1/@parameters.0"/> | ||
12 | <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.1/@parameters.1"/> | ||
13 | </partialrelationinterpretation> | ||
14 | <partialrelationinterpretation> | ||
15 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.2"/> | ||
16 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.0"/> | ||
17 | <param2 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.2/@parameters.1"/> | ||
18 | </partialrelationinterpretation> | ||
19 | <partialrelationinterpretation> | ||
20 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.3"/> | ||
21 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.3/@parameters.0"/> | ||
22 | <param2 xsi:type="language:StringTypeReference" href="outputs/debug/generation.logicproblem#//@relations.3/@parameters.1"/> | ||
23 | </partialrelationinterpretation> | ||
24 | <partialrelationinterpretation> | ||
25 | <interpretationOf href="outputs/debug/generation.logicproblem#//@relations.4"/> | ||
26 | <param1 xsi:type="language:ComplexTypeReference" href="outputs/debug/generation.logicproblem#//@relations.4/@parameters.0"/> | ||
27 | <param2 xsi:type="language:IntTypeReference" href="outputs/debug/generation.logicproblem#//@relations.4/@parameters.1"/> | ||
28 | </partialrelationinterpretation> | ||
29 | <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/> | ||
30 | <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/> | ||
31 | <newElements xsi:type="partialinterpretation:IntegerElement" name="1" valueSet="true" value="1"/> | ||
32 | <newElements xsi:type="partialinterpretation:IntegerElement" name="2" valueSet="true" value="2"/> | ||
33 | <newElements xsi:type="partialinterpretation:IntegerElement" name="3" valueSet="true" value="3"/> | ||
34 | <newElements xsi:type="partialinterpretation:IntegerElement" name="4" valueSet="true" value="4"/> | ||
35 | <newElements xsi:type="partialinterpretation:IntegerElement" name="5" valueSet="true" value="5"/> | ||
36 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/> | ||
37 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@newElements.2 //@newElements.3 //@newElements.4 //@newElements.5 //@newElements.6"/> | ||
38 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.0"/> | ||
39 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.1"/> | ||
40 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0"> | ||
41 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.0"/> | ||
42 | </partialtypeinterpratation> | ||
43 | <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1"> | ||
44 | <interpretationOf href="outputs/debug/generation.logicproblem#//@types.1"/> | ||
45 | </partialtypeinterpratation> | ||
46 | <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/> | ||
47 | <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/> | ||
48 | <openWorldElements name="New Objects"/> | ||
49 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/> | ||
50 | <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/> | ||
51 | </partialinterpretation:PartialInterpretation> | ||