aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated
diff options
context:
space:
mode:
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated3000
1 files changed, 0 insertions, 3000 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated b/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated
deleted file mode 100644
index c96a951c..00000000
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.satellite/outputs/debug/run3/generated3valued.vql_deactivated
+++ /dev/null
@@ -1,3000 +0,0 @@
1import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage"
2import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem"
3import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"
4
5//////////
6// 0. Util
7//////////
8private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) {
9 PartialInterpretation.problem(interpretation,problem);
10}
11
12/////////////////////////
13// 0.1 Existence
14/////////////////////////
15private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
16 find interpretation(problem,interpretation);
17 LogicProblem.elements(problem,element);
18} or {
19 find interpretation(problem,interpretation);
20 PartialInterpretation.newElements(interpretation,element);
21}
22
23private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
24 find mustExist(problem,interpretation,element);
25} or {
26 find interpretation(problem,interpretation);
27 neg find elementCloseWorld(element);
28 PartialInterpretation.openWorldElements(interpretation,element);
29}
30
31private pattern elementCloseWorld(element:DefinedElement) {
32 PartialInterpretation.openWorldElements(i,element);
33 PartialInterpretation.maxNewElements(i,0);
34} or {
35 Scope.targetTypeInterpretation(scope,interpretation);
36 PartialTypeInterpratation.elements(interpretation,element);
37 Scope.maxNewElements(scope,0);
38}
39
40////////////////////////
41// 0.2 Equivalence
42////////////////////////
43pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
44 find mayExist(problem,interpretation,a);
45 find mayExist(problem,interpretation,b);
46 a == b;
47}
48pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
49 find mustExist(problem,interpretation,a);
50 find mustExist(problem,interpretation,b);
51 a == b;
52}
53
54////////////////////////
55// 0.3 Required Patterns by TypeIndexer
56////////////////////////
57private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
58 find interpretation(problem,interpretation);
59 LogicProblem.types(problem,type);
60 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
61 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
62}
63
64private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
65 find interpretation(problem,interpretation);
66 LogicProblem.types(problem,type);
67 TypeDefinition.elements(type,element);
68} or {
69 find interpretation(problem,interpretation);
70 find typeInterpretation(problem,interpretation,type,typeInterpretation);
71 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
72}
73
74private pattern isPrimitive(element: PrimitiveElement) {
75 PrimitiveElement(element);
76}
77
78//////////
79// 1. Problem-Specific Base Indexers
80//////////
81// 1.1 Type Indexers
82//////////
83// 1.1.1 primitive Type Indexers
84//////////
85
86//////////
87// 1.1.2 domain-specific Type Indexers
88//////////
89/**
90 * An element must be an instance of type "ConstellationMission class".
91 */
92private pattern mustInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
93 Type.name(type,"ConstellationMission class");
94 find directInstanceOf(problem,interpretation,element,type);
95}
96private pattern scopeDisallowsNewConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
97 find interpretation(problem,interpretation);
98 PartialInterpretation.scopes(interpretation,scope);
99 Scope.targetTypeInterpretation(scope,typeInterpretation);
100 Scope.maxNewElements(scope,0);
101 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
102 Type.name(type,"ConstellationMission class");
103}
104
105/**
106 * An element may be an instance of type "ConstellationMission class".
107 */
108private pattern mayInstanceOfConstellationMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
109{
110 find interpretation(problem,interpretation);
111 PartialInterpretation.newElements(interpretation,element);
112 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
113 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
114 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
115 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
116 neg find mustInstanceOfPayload_class(problem,interpretation,element);
117 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
118 neg find isPrimitive(element);
119} or {
120 find interpretation(problem,interpretation);
121 PartialInterpretation.openWorldElements(interpretation,element);
122 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
123 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
124 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
125 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
126 neg find mustInstanceOfPayload_class(problem,interpretation,element);
127 neg find scopeDisallowsNewConstellationMission_class(problem, interpretation);
128 neg find isPrimitive(element);
129} or
130{ find mustInstanceOfConstellationMission_class(problem,interpretation,element); }
131/**
132 * An element must be an instance of type "InterferometryMission class".
133 */
134private pattern mustInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
135 Type.name(type,"InterferometryMission class");
136 find directInstanceOf(problem,interpretation,element,type);
137}
138private pattern scopeDisallowsNewInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation) {
139 find interpretation(problem,interpretation);
140 PartialInterpretation.scopes(interpretation,scope);
141 Scope.targetTypeInterpretation(scope,typeInterpretation);
142 Scope.maxNewElements(scope,0);
143 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
144 Type.name(type,"InterferometryMission class");
145}
146
147/**
148 * An element may be an instance of type "InterferometryMission class".
149 */
150private pattern mayInstanceOfInterferometryMission_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
151{
152 find interpretation(problem,interpretation);
153 PartialInterpretation.newElements(interpretation,element);
154 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
155 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
156 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
157 neg find mustInstanceOfPayload_class(problem,interpretation,element);
158 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
159 neg find isPrimitive(element);
160} or {
161 find interpretation(problem,interpretation);
162 PartialInterpretation.openWorldElements(interpretation,element);
163 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
164 neg find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element);
165 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
166 neg find mustInstanceOfPayload_class(problem,interpretation,element);
167 neg find scopeDisallowsNewInterferometryMission_class(problem, interpretation);
168 neg find isPrimitive(element);
169} or
170{ find mustInstanceOfInterferometryMission_class(problem,interpretation,element); }
171/**
172 * An element must be an instance of type "CommunicatingElement class".
173 */
174private pattern mustInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
175 Type.name(type,"CommunicatingElement class");
176 find directInstanceOf(problem,interpretation,element,type);
177}
178private pattern scopeDisallowsNewCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation) {
179 find interpretation(problem,interpretation);
180 PartialInterpretation.scopes(interpretation,scope);
181 Scope.targetTypeInterpretation(scope,typeInterpretation);
182 Scope.maxNewElements(scope,0);
183 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
184 Type.name(type,"CommunicatingElement class");
185}
186
187/**
188 * An element may be an instance of type "CommunicatingElement class".
189 */
190private pattern mayInstanceOfCommunicatingElement_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
191{
192 find interpretation(problem,interpretation);
193 PartialInterpretation.newElements(interpretation,element);
194 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
195 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
196 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
197 neg find mustInstanceOfPayload_class(problem,interpretation,element);
198 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
199 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
200 neg find isPrimitive(element);
201} or {
202 find interpretation(problem,interpretation);
203 PartialInterpretation.openWorldElements(interpretation,element);
204 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
205 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
206 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
207 neg find mustInstanceOfPayload_class(problem,interpretation,element);
208 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
209 neg find scopeDisallowsNewCommunicatingElement_class(problem, interpretation);
210 neg find isPrimitive(element);
211} or
212{ find mustInstanceOfCommunicatingElement_class(problem,interpretation,element); }
213/**
214 * An element must be an instance of type "GroundStationNetwork class".
215 */
216private pattern mustInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
217 Type.name(type,"GroundStationNetwork class");
218 find directInstanceOf(problem,interpretation,element,type);
219}
220private pattern scopeDisallowsNewGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation) {
221 find interpretation(problem,interpretation);
222 PartialInterpretation.scopes(interpretation,scope);
223 Scope.targetTypeInterpretation(scope,typeInterpretation);
224 Scope.maxNewElements(scope,0);
225 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
226 Type.name(type,"GroundStationNetwork class");
227}
228
229/**
230 * An element may be an instance of type "GroundStationNetwork class".
231 */
232private pattern mayInstanceOfGroundStationNetwork_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
233{
234 find interpretation(problem,interpretation);
235 PartialInterpretation.newElements(interpretation,element);
236 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
237 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
238 neg find mustInstanceOfPayload_class(problem,interpretation,element);
239 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
240 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
241 neg find isPrimitive(element);
242} or {
243 find interpretation(problem,interpretation);
244 PartialInterpretation.openWorldElements(interpretation,element);
245 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
246 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
247 neg find mustInstanceOfPayload_class(problem,interpretation,element);
248 neg find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element);
249 neg find scopeDisallowsNewGroundStationNetwork_class(problem, interpretation);
250 neg find isPrimitive(element);
251} or
252{ find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element); }
253/**
254 * An element must be an instance of type "Spacecraft class".
255 */
256private pattern mustInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
257 Type.name(type,"Spacecraft class");
258 find directInstanceOf(problem,interpretation,element,type);
259}
260private pattern scopeDisallowsNewSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation) {
261 find interpretation(problem,interpretation);
262 PartialInterpretation.scopes(interpretation,scope);
263 Scope.targetTypeInterpretation(scope,typeInterpretation);
264 Scope.maxNewElements(scope,0);
265 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
266 Type.name(type,"Spacecraft class");
267}
268
269/**
270 * An element may be an instance of type "Spacecraft class".
271 */
272private pattern mayInstanceOfSpacecraft_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
273{
274 find interpretation(problem,interpretation);
275 PartialInterpretation.newElements(interpretation,element);
276 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
277 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
278 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
279 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
280 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
281 neg find mustInstanceOfPayload_class(problem,interpretation,element);
282 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
283 neg find isPrimitive(element);
284} or {
285 find interpretation(problem,interpretation);
286 PartialInterpretation.openWorldElements(interpretation,element);
287 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
288 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
289 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
290 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
291 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
292 neg find mustInstanceOfPayload_class(problem,interpretation,element);
293 neg find scopeDisallowsNewSpacecraft_class(problem, interpretation);
294 neg find isPrimitive(element);
295} or
296{ find mustInstanceOfSpacecraft_class(problem,interpretation,element); }
297/**
298 * An element must be an instance of type "CommSubsystem class".
299 */
300private pattern mustInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
301 Type.name(type,"CommSubsystem class");
302 find directInstanceOf(problem,interpretation,element,type);
303}
304private pattern scopeDisallowsNewCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
305 find interpretation(problem,interpretation);
306 PartialInterpretation.scopes(interpretation,scope);
307 Scope.targetTypeInterpretation(scope,typeInterpretation);
308 Scope.maxNewElements(scope,0);
309 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
310 Type.name(type,"CommSubsystem class");
311}
312
313/**
314 * An element may be an instance of type "CommSubsystem class".
315 */
316private pattern mayInstanceOfCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
317{
318 find interpretation(problem,interpretation);
319 PartialInterpretation.newElements(interpretation,element);
320 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
321 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
322 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
323 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
324 neg find mustInstanceOfPayload_class(problem,interpretation,element);
325 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
326 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
327 neg find isPrimitive(element);
328} or {
329 find interpretation(problem,interpretation);
330 PartialInterpretation.openWorldElements(interpretation,element);
331 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
332 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
333 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
334 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
335 neg find mustInstanceOfPayload_class(problem,interpretation,element);
336 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
337 neg find scopeDisallowsNewCommSubsystem_class(problem, interpretation);
338 neg find isPrimitive(element);
339} or
340{ find mustInstanceOfCommSubsystem_class(problem,interpretation,element); }
341/**
342 * An element must be an instance of type "Payload class".
343 */
344private pattern mustInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
345 Type.name(type,"Payload class");
346 find directInstanceOf(problem,interpretation,element,type);
347}
348private pattern scopeDisallowsNewPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
349 find interpretation(problem,interpretation);
350 PartialInterpretation.scopes(interpretation,scope);
351 Scope.targetTypeInterpretation(scope,typeInterpretation);
352 Scope.maxNewElements(scope,0);
353 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
354 Type.name(type,"Payload class");
355}
356
357/**
358 * An element may be an instance of type "Payload class".
359 */
360private pattern mayInstanceOfPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
361{
362 find interpretation(problem,interpretation);
363 PartialInterpretation.newElements(interpretation,element);
364 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
365 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
366 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
367 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
368 neg find scopeDisallowsNewPayload_class(problem, interpretation);
369 neg find isPrimitive(element);
370} or {
371 find interpretation(problem,interpretation);
372 PartialInterpretation.openWorldElements(interpretation,element);
373 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
374 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
375 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
376 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
377 neg find scopeDisallowsNewPayload_class(problem, interpretation);
378 neg find isPrimitive(element);
379} or
380{ find mustInstanceOfPayload_class(problem,interpretation,element); }
381/**
382 * An element must be an instance of type "InterferometryPayload class".
383 */
384private pattern mustInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
385 Type.name(type,"InterferometryPayload class");
386 find directInstanceOf(problem,interpretation,element,type);
387}
388private pattern scopeDisallowsNewInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation) {
389 find interpretation(problem,interpretation);
390 PartialInterpretation.scopes(interpretation,scope);
391 Scope.targetTypeInterpretation(scope,typeInterpretation);
392 Scope.maxNewElements(scope,0);
393 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
394 Type.name(type,"InterferometryPayload class");
395}
396
397/**
398 * An element may be an instance of type "InterferometryPayload class".
399 */
400private pattern mayInstanceOfInterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
401{
402 find interpretation(problem,interpretation);
403 PartialInterpretation.newElements(interpretation,element);
404 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
405 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
406 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
407 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
408 neg find isPrimitive(element);
409} or {
410 find interpretation(problem,interpretation);
411 PartialInterpretation.openWorldElements(interpretation,element);
412 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
413 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
414 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
415 neg find scopeDisallowsNewInterferometryPayload_class(problem, interpretation);
416 neg find isPrimitive(element);
417} or
418{ find mustInstanceOfInterferometryPayload_class(problem,interpretation,element); }
419/**
420 * An element must be an instance of type "CubeSat3U class".
421 */
422private pattern mustInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
423 Type.name(type,"CubeSat3U class");
424 find directInstanceOf(problem,interpretation,element,type);
425}
426private pattern scopeDisallowsNewCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
427 find interpretation(problem,interpretation);
428 PartialInterpretation.scopes(interpretation,scope);
429 Scope.targetTypeInterpretation(scope,typeInterpretation);
430 Scope.maxNewElements(scope,0);
431 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
432 Type.name(type,"CubeSat3U class");
433}
434
435/**
436 * An element may be an instance of type "CubeSat3U class".
437 */
438private pattern mayInstanceOfCubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
439{
440 find interpretation(problem,interpretation);
441 PartialInterpretation.newElements(interpretation,element);
442 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
443 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
444 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
445 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
446 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
447 neg find mustInstanceOfPayload_class(problem,interpretation,element);
448 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
449 neg find isPrimitive(element);
450} or {
451 find interpretation(problem,interpretation);
452 PartialInterpretation.openWorldElements(interpretation,element);
453 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
454 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
455 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
456 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
457 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
458 neg find mustInstanceOfPayload_class(problem,interpretation,element);
459 neg find scopeDisallowsNewCubeSat3U_class(problem, interpretation);
460 neg find isPrimitive(element);
461} or
462{ find mustInstanceOfCubeSat3U_class(problem,interpretation,element); }
463/**
464 * An element must be an instance of type "CubeSat6U class".
465 */
466private pattern mustInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
467 Type.name(type,"CubeSat6U class");
468 find directInstanceOf(problem,interpretation,element,type);
469}
470private pattern scopeDisallowsNewCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation) {
471 find interpretation(problem,interpretation);
472 PartialInterpretation.scopes(interpretation,scope);
473 Scope.targetTypeInterpretation(scope,typeInterpretation);
474 Scope.maxNewElements(scope,0);
475 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
476 Type.name(type,"CubeSat6U class");
477}
478
479/**
480 * An element may be an instance of type "CubeSat6U class".
481 */
482private pattern mayInstanceOfCubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
483{
484 find interpretation(problem,interpretation);
485 PartialInterpretation.newElements(interpretation,element);
486 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
487 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
488 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
489 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
490 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
491 neg find mustInstanceOfPayload_class(problem,interpretation,element);
492 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
493 neg find isPrimitive(element);
494} or {
495 find interpretation(problem,interpretation);
496 PartialInterpretation.openWorldElements(interpretation,element);
497 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
498 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
499 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
500 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
501 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
502 neg find mustInstanceOfPayload_class(problem,interpretation,element);
503 neg find scopeDisallowsNewCubeSat6U_class(problem, interpretation);
504 neg find isPrimitive(element);
505} or
506{ find mustInstanceOfCubeSat6U_class(problem,interpretation,element); }
507/**
508 * An element must be an instance of type "SmallSat class".
509 */
510private pattern mustInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
511 Type.name(type,"SmallSat class");
512 find directInstanceOf(problem,interpretation,element,type);
513}
514private pattern scopeDisallowsNewSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
515 find interpretation(problem,interpretation);
516 PartialInterpretation.scopes(interpretation,scope);
517 Scope.targetTypeInterpretation(scope,typeInterpretation);
518 Scope.maxNewElements(scope,0);
519 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
520 Type.name(type,"SmallSat class");
521}
522
523/**
524 * An element may be an instance of type "SmallSat class".
525 */
526private pattern mayInstanceOfSmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
527{
528 find interpretation(problem,interpretation);
529 PartialInterpretation.newElements(interpretation,element);
530 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
531 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
532 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
533 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
534 neg find mustInstanceOfPayload_class(problem,interpretation,element);
535 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
536 neg find isPrimitive(element);
537} or {
538 find interpretation(problem,interpretation);
539 PartialInterpretation.openWorldElements(interpretation,element);
540 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
541 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
542 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
543 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
544 neg find mustInstanceOfPayload_class(problem,interpretation,element);
545 neg find scopeDisallowsNewSmallSat_class(problem, interpretation);
546 neg find isPrimitive(element);
547} or
548{ find mustInstanceOfSmallSat_class(problem,interpretation,element); }
549/**
550 * An element must be an instance of type "CubeSat class".
551 */
552private pattern mustInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
553 Type.name(type,"CubeSat class");
554 find directInstanceOf(problem,interpretation,element,type);
555}
556private pattern scopeDisallowsNewCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation) {
557 find interpretation(problem,interpretation);
558 PartialInterpretation.scopes(interpretation,scope);
559 Scope.targetTypeInterpretation(scope,typeInterpretation);
560 Scope.maxNewElements(scope,0);
561 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
562 Type.name(type,"CubeSat class");
563}
564
565/**
566 * An element may be an instance of type "CubeSat class".
567 */
568private pattern mayInstanceOfCubeSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
569{
570 find interpretation(problem,interpretation);
571 PartialInterpretation.newElements(interpretation,element);
572 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
573 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
574 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
575 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
576 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
577 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
578 neg find mustInstanceOfPayload_class(problem,interpretation,element);
579 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
580 neg find isPrimitive(element);
581} or {
582 find interpretation(problem,interpretation);
583 PartialInterpretation.openWorldElements(interpretation,element);
584 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
585 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
586 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
587 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
588 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
589 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
590 neg find mustInstanceOfPayload_class(problem,interpretation,element);
591 neg find scopeDisallowsNewCubeSat_class(problem, interpretation);
592 neg find isPrimitive(element);
593} or
594{ find mustInstanceOfCubeSat_class(problem,interpretation,element); }
595/**
596 * An element must be an instance of type "UHFCommSubsystem class".
597 */
598private pattern mustInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
599 Type.name(type,"UHFCommSubsystem class");
600 find directInstanceOf(problem,interpretation,element,type);
601}
602private pattern scopeDisallowsNewUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
603 find interpretation(problem,interpretation);
604 PartialInterpretation.scopes(interpretation,scope);
605 Scope.targetTypeInterpretation(scope,typeInterpretation);
606 Scope.maxNewElements(scope,0);
607 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
608 Type.name(type,"UHFCommSubsystem class");
609}
610
611/**
612 * An element may be an instance of type "UHFCommSubsystem class".
613 */
614private pattern mayInstanceOfUHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 PartialInterpretation.newElements(interpretation,element);
618 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
619 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
620 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
621 neg find mustInstanceOfPayload_class(problem,interpretation,element);
622 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
623 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
624 neg find isPrimitive(element);
625} or {
626 find interpretation(problem,interpretation);
627 PartialInterpretation.openWorldElements(interpretation,element);
628 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
629 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
630 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
631 neg find mustInstanceOfPayload_class(problem,interpretation,element);
632 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
633 neg find scopeDisallowsNewUHFCommSubsystem_class(problem, interpretation);
634 neg find isPrimitive(element);
635} or
636{ find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element); }
637/**
638 * An element must be an instance of type "XCommSubsystem class".
639 */
640private pattern mustInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
641 Type.name(type,"XCommSubsystem class");
642 find directInstanceOf(problem,interpretation,element,type);
643}
644private pattern scopeDisallowsNewXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
645 find interpretation(problem,interpretation);
646 PartialInterpretation.scopes(interpretation,scope);
647 Scope.targetTypeInterpretation(scope,typeInterpretation);
648 Scope.maxNewElements(scope,0);
649 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
650 Type.name(type,"XCommSubsystem class");
651}
652
653/**
654 * An element may be an instance of type "XCommSubsystem class".
655 */
656private pattern mayInstanceOfXCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
657{
658 find interpretation(problem,interpretation);
659 PartialInterpretation.newElements(interpretation,element);
660 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
661 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
662 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
663 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
664 neg find mustInstanceOfPayload_class(problem,interpretation,element);
665 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
666 neg find isPrimitive(element);
667} or {
668 find interpretation(problem,interpretation);
669 PartialInterpretation.openWorldElements(interpretation,element);
670 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
671 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
672 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
673 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
674 neg find mustInstanceOfPayload_class(problem,interpretation,element);
675 neg find scopeDisallowsNewXCommSubsystem_class(problem, interpretation);
676 neg find isPrimitive(element);
677} or
678{ find mustInstanceOfXCommSubsystem_class(problem,interpretation,element); }
679/**
680 * An element must be an instance of type "KaCommSubsystem class".
681 */
682private pattern mustInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
683 Type.name(type,"KaCommSubsystem class");
684 find directInstanceOf(problem,interpretation,element,type);
685}
686private pattern scopeDisallowsNewKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation) {
687 find interpretation(problem,interpretation);
688 PartialInterpretation.scopes(interpretation,scope);
689 Scope.targetTypeInterpretation(scope,typeInterpretation);
690 Scope.maxNewElements(scope,0);
691 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
692 Type.name(type,"KaCommSubsystem class");
693}
694
695/**
696 * An element may be an instance of type "KaCommSubsystem class".
697 */
698private pattern mayInstanceOfKaCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
699{
700 find interpretation(problem,interpretation);
701 PartialInterpretation.newElements(interpretation,element);
702 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
703 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
704 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
705 neg find mustInstanceOfPayload_class(problem,interpretation,element);
706 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
707 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
708 neg find isPrimitive(element);
709} or {
710 find interpretation(problem,interpretation);
711 PartialInterpretation.openWorldElements(interpretation,element);
712 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
713 neg find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element);
714 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
715 neg find mustInstanceOfPayload_class(problem,interpretation,element);
716 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
717 neg find scopeDisallowsNewKaCommSubsystem_class(problem, interpretation);
718 neg find isPrimitive(element);
719} or
720{ find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element); }
721/**
722 * An element must be an instance of type "ConstellationMission class DefinedPart".
723 */
724private pattern mustInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
725 Type.name(type,"ConstellationMission class DefinedPart");
726 find directInstanceOf(problem,interpretation,element,type);
727}
728private pattern scopeDisallowsNewConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
729 find interpretation(problem,interpretation);
730 PartialInterpretation.scopes(interpretation,scope);
731 Scope.targetTypeInterpretation(scope,typeInterpretation);
732 Scope.maxNewElements(scope,0);
733 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
734 Type.name(type,"ConstellationMission class DefinedPart");
735}
736
737/**
738 * An element may be an instance of type "ConstellationMission class DefinedPart".
739 */
740private pattern mayInstanceOfConstellationMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
741{ find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,element); }
742/**
743 * An element must be an instance of type "ConstellationMission class UndefinedPart".
744 */
745private pattern mustInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
746 Type.name(type,"ConstellationMission class UndefinedPart");
747 find directInstanceOf(problem,interpretation,element,type);
748}
749private pattern scopeDisallowsNewConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
750 find interpretation(problem,interpretation);
751 PartialInterpretation.scopes(interpretation,scope);
752 Scope.targetTypeInterpretation(scope,typeInterpretation);
753 Scope.maxNewElements(scope,0);
754 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
755 Type.name(type,"ConstellationMission class UndefinedPart");
756}
757
758/**
759 * An element may be an instance of type "ConstellationMission class UndefinedPart".
760 */
761private pattern mayInstanceOfConstellationMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
762{
763 find interpretation(problem,interpretation);
764 PartialInterpretation.newElements(interpretation,element);
765 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
766 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
767 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
768 neg find mustInstanceOfPayload_class(problem,interpretation,element);
769 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
770 neg find isPrimitive(element);
771} or {
772 find interpretation(problem,interpretation);
773 PartialInterpretation.openWorldElements(interpretation,element);
774 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
775 neg find mustInstanceOfInterferometryMission_class(problem,interpretation,element);
776 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
777 neg find mustInstanceOfPayload_class(problem,interpretation,element);
778 neg find scopeDisallowsNewConstellationMission_class_UndefinedPart(problem, interpretation);
779 neg find isPrimitive(element);
780} or
781{ find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,element); }
782/**
783 * An element must be an instance of type "InterferometryMission class DefinedPart".
784 */
785private pattern mustInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
786 Type.name(type,"InterferometryMission class DefinedPart");
787 find directInstanceOf(problem,interpretation,element,type);
788}
789private pattern scopeDisallowsNewInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
790 find interpretation(problem,interpretation);
791 PartialInterpretation.scopes(interpretation,scope);
792 Scope.targetTypeInterpretation(scope,typeInterpretation);
793 Scope.maxNewElements(scope,0);
794 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
795 Type.name(type,"InterferometryMission class DefinedPart");
796}
797
798/**
799 * An element may be an instance of type "InterferometryMission class DefinedPart".
800 */
801private pattern mayInstanceOfInterferometryMission_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
802{ find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,element); }
803/**
804 * An element must be an instance of type "InterferometryMission class UndefinedPart".
805 */
806private pattern mustInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
807 Type.name(type,"InterferometryMission class UndefinedPart");
808 find directInstanceOf(problem,interpretation,element,type);
809}
810private pattern scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
811 find interpretation(problem,interpretation);
812 PartialInterpretation.scopes(interpretation,scope);
813 Scope.targetTypeInterpretation(scope,typeInterpretation);
814 Scope.maxNewElements(scope,0);
815 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
816 Type.name(type,"InterferometryMission class UndefinedPart");
817}
818
819/**
820 * An element may be an instance of type "InterferometryMission class UndefinedPart".
821 */
822private pattern mayInstanceOfInterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
823{
824 find interpretation(problem,interpretation);
825 PartialInterpretation.newElements(interpretation,element);
826 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
827 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
828 neg find mustInstanceOfPayload_class(problem,interpretation,element);
829 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
830 neg find isPrimitive(element);
831} or {
832 find interpretation(problem,interpretation);
833 PartialInterpretation.openWorldElements(interpretation,element);
834 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
835 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
836 neg find mustInstanceOfPayload_class(problem,interpretation,element);
837 neg find scopeDisallowsNewInterferometryMission_class_UndefinedPart(problem, interpretation);
838 neg find isPrimitive(element);
839} or
840{ find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element); }
841/**
842 * An element must be an instance of type "CommunicatingElement class DefinedPart".
843 */
844private pattern mustInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
845 Type.name(type,"CommunicatingElement class DefinedPart");
846 find directInstanceOf(problem,interpretation,element,type);
847}
848private pattern scopeDisallowsNewCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
849 find interpretation(problem,interpretation);
850 PartialInterpretation.scopes(interpretation,scope);
851 Scope.targetTypeInterpretation(scope,typeInterpretation);
852 Scope.maxNewElements(scope,0);
853 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
854 Type.name(type,"CommunicatingElement class DefinedPart");
855}
856
857/**
858 * An element may be an instance of type "CommunicatingElement class DefinedPart".
859 */
860private pattern mayInstanceOfCommunicatingElement_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
861{ find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,element); }
862/**
863 * An element must be an instance of type "CommunicatingElement class UndefinedPart".
864 */
865private pattern mustInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
866 Type.name(type,"CommunicatingElement class UndefinedPart");
867 find directInstanceOf(problem,interpretation,element,type);
868}
869private pattern scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
870 find interpretation(problem,interpretation);
871 PartialInterpretation.scopes(interpretation,scope);
872 Scope.targetTypeInterpretation(scope,typeInterpretation);
873 Scope.maxNewElements(scope,0);
874 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
875 Type.name(type,"CommunicatingElement class UndefinedPart");
876}
877
878/**
879 * An element may be an instance of type "CommunicatingElement class UndefinedPart".
880 */
881private pattern mayInstanceOfCommunicatingElement_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
882{
883 find interpretation(problem,interpretation);
884 PartialInterpretation.newElements(interpretation,element);
885 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
886 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
887 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
888 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
889 neg find mustInstanceOfPayload_class(problem,interpretation,element);
890 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
891 neg find isPrimitive(element);
892} or {
893 find interpretation(problem,interpretation);
894 PartialInterpretation.openWorldElements(interpretation,element);
895 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
896 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
897 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
898 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
899 neg find mustInstanceOfPayload_class(problem,interpretation,element);
900 neg find scopeDisallowsNewCommunicatingElement_class_UndefinedPart(problem, interpretation);
901 neg find isPrimitive(element);
902} or
903{ find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,element); }
904/**
905 * An element must be an instance of type "GroundStationNetwork class DefinedPart".
906 */
907private pattern mustInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
908 Type.name(type,"GroundStationNetwork class DefinedPart");
909 find directInstanceOf(problem,interpretation,element,type);
910}
911private pattern scopeDisallowsNewGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
912 find interpretation(problem,interpretation);
913 PartialInterpretation.scopes(interpretation,scope);
914 Scope.targetTypeInterpretation(scope,typeInterpretation);
915 Scope.maxNewElements(scope,0);
916 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
917 Type.name(type,"GroundStationNetwork class DefinedPart");
918}
919
920/**
921 * An element may be an instance of type "GroundStationNetwork class DefinedPart".
922 */
923private pattern mayInstanceOfGroundStationNetwork_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
924{ find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,element); }
925/**
926 * An element must be an instance of type "GroundStationNetwork class UndefinedPart".
927 */
928private pattern mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
929 Type.name(type,"GroundStationNetwork class UndefinedPart");
930 find directInstanceOf(problem,interpretation,element,type);
931}
932private pattern scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
933 find interpretation(problem,interpretation);
934 PartialInterpretation.scopes(interpretation,scope);
935 Scope.targetTypeInterpretation(scope,typeInterpretation);
936 Scope.maxNewElements(scope,0);
937 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
938 Type.name(type,"GroundStationNetwork class UndefinedPart");
939}
940
941/**
942 * An element may be an instance of type "GroundStationNetwork class UndefinedPart".
943 */
944private pattern mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
945{
946 find interpretation(problem,interpretation);
947 PartialInterpretation.newElements(interpretation,element);
948 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
949 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
950 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
951 neg find mustInstanceOfPayload_class(problem,interpretation,element);
952 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
953 neg find isPrimitive(element);
954} or {
955 find interpretation(problem,interpretation);
956 PartialInterpretation.openWorldElements(interpretation,element);
957 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
958 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
959 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
960 neg find mustInstanceOfPayload_class(problem,interpretation,element);
961 neg find scopeDisallowsNewGroundStationNetwork_class_UndefinedPart(problem, interpretation);
962 neg find isPrimitive(element);
963} or
964{ find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element); }
965/**
966 * An element must be an instance of type "CommSubsystem class DefinedPart".
967 */
968private pattern mustInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
969 Type.name(type,"CommSubsystem class DefinedPart");
970 find directInstanceOf(problem,interpretation,element,type);
971}
972private pattern scopeDisallowsNewCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
973 find interpretation(problem,interpretation);
974 PartialInterpretation.scopes(interpretation,scope);
975 Scope.targetTypeInterpretation(scope,typeInterpretation);
976 Scope.maxNewElements(scope,0);
977 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
978 Type.name(type,"CommSubsystem class DefinedPart");
979}
980
981/**
982 * An element may be an instance of type "CommSubsystem class DefinedPart".
983 */
984private pattern mayInstanceOfCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
985{ find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,element); }
986/**
987 * An element must be an instance of type "CommSubsystem class UndefinedPart".
988 */
989private pattern mustInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
990 Type.name(type,"CommSubsystem class UndefinedPart");
991 find directInstanceOf(problem,interpretation,element,type);
992}
993private pattern scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
994 find interpretation(problem,interpretation);
995 PartialInterpretation.scopes(interpretation,scope);
996 Scope.targetTypeInterpretation(scope,typeInterpretation);
997 Scope.maxNewElements(scope,0);
998 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
999 Type.name(type,"CommSubsystem class UndefinedPart");
1000}
1001
1002/**
1003 * An element may be an instance of type "CommSubsystem class UndefinedPart".
1004 */
1005private pattern mayInstanceOfCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1006{
1007 find interpretation(problem,interpretation);
1008 PartialInterpretation.newElements(interpretation,element);
1009 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1010 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1011 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1012 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1013 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1014 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1015 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1016 neg find isPrimitive(element);
1017} or {
1018 find interpretation(problem,interpretation);
1019 PartialInterpretation.openWorldElements(interpretation,element);
1020 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1021 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1022 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1023 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1024 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1025 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1026 neg find scopeDisallowsNewCommSubsystem_class_UndefinedPart(problem, interpretation);
1027 neg find isPrimitive(element);
1028} or
1029{ find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1030/**
1031 * An element must be an instance of type "XCommSubsystem class DefinedPart".
1032 */
1033private pattern mustInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1034 Type.name(type,"XCommSubsystem class DefinedPart");
1035 find directInstanceOf(problem,interpretation,element,type);
1036}
1037private pattern scopeDisallowsNewXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1038 find interpretation(problem,interpretation);
1039 PartialInterpretation.scopes(interpretation,scope);
1040 Scope.targetTypeInterpretation(scope,typeInterpretation);
1041 Scope.maxNewElements(scope,0);
1042 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1043 Type.name(type,"XCommSubsystem class DefinedPart");
1044}
1045
1046/**
1047 * An element may be an instance of type "XCommSubsystem class DefinedPart".
1048 */
1049private pattern mayInstanceOfXCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1050{ find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1051/**
1052 * An element must be an instance of type "XCommSubsystem class UndefinedPart".
1053 */
1054private pattern mustInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1055 Type.name(type,"XCommSubsystem class UndefinedPart");
1056 find directInstanceOf(problem,interpretation,element,type);
1057}
1058private pattern scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1059 find interpretation(problem,interpretation);
1060 PartialInterpretation.scopes(interpretation,scope);
1061 Scope.targetTypeInterpretation(scope,typeInterpretation);
1062 Scope.maxNewElements(scope,0);
1063 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1064 Type.name(type,"XCommSubsystem class UndefinedPart");
1065}
1066
1067/**
1068 * An element may be an instance of type "XCommSubsystem class UndefinedPart".
1069 */
1070private pattern mayInstanceOfXCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1071{
1072 find interpretation(problem,interpretation);
1073 PartialInterpretation.newElements(interpretation,element);
1074 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1075 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1076 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1077 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1078 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1079 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1080 neg find isPrimitive(element);
1081} or {
1082 find interpretation(problem,interpretation);
1083 PartialInterpretation.openWorldElements(interpretation,element);
1084 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1085 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1086 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1087 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
1088 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1089 neg find scopeDisallowsNewXCommSubsystem_class_UndefinedPart(problem, interpretation);
1090 neg find isPrimitive(element);
1091} or
1092{ find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1093/**
1094 * An element must be an instance of type "KaCommSubsystem class DefinedPart".
1095 */
1096private pattern mustInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1097 Type.name(type,"KaCommSubsystem class DefinedPart");
1098 find directInstanceOf(problem,interpretation,element,type);
1099}
1100private pattern scopeDisallowsNewKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1101 find interpretation(problem,interpretation);
1102 PartialInterpretation.scopes(interpretation,scope);
1103 Scope.targetTypeInterpretation(scope,typeInterpretation);
1104 Scope.maxNewElements(scope,0);
1105 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1106 Type.name(type,"KaCommSubsystem class DefinedPart");
1107}
1108
1109/**
1110 * An element may be an instance of type "KaCommSubsystem class DefinedPart".
1111 */
1112private pattern mayInstanceOfKaCommSubsystem_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1113{ find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,element); }
1114/**
1115 * An element must be an instance of type "KaCommSubsystem class UndefinedPart".
1116 */
1117private pattern mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
1118 Type.name(type,"KaCommSubsystem class UndefinedPart");
1119 find directInstanceOf(problem,interpretation,element,type);
1120}
1121private pattern scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
1122 find interpretation(problem,interpretation);
1123 PartialInterpretation.scopes(interpretation,scope);
1124 Scope.targetTypeInterpretation(scope,typeInterpretation);
1125 Scope.maxNewElements(scope,0);
1126 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
1127 Type.name(type,"KaCommSubsystem class UndefinedPart");
1128}
1129
1130/**
1131 * An element may be an instance of type "KaCommSubsystem class UndefinedPart".
1132 */
1133private pattern mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
1134{
1135 find interpretation(problem,interpretation);
1136 PartialInterpretation.newElements(interpretation,element);
1137 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1138 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1139 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1140 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1141 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1142 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1143 neg find isPrimitive(element);
1144} or {
1145 find interpretation(problem,interpretation);
1146 PartialInterpretation.openWorldElements(interpretation,element);
1147 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
1148 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
1149 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
1150 neg find mustInstanceOfPayload_class(problem,interpretation,element);
1151 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
1152 neg find scopeDisallowsNewKaCommSubsystem_class_UndefinedPart(problem, interpretation);
1153 neg find isPrimitive(element);
1154} or
1155{ find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element); }
1156
1157//////////
1158// 1.2 Relation Declaration Indexers
1159//////////
1160/**
1161 * Matcher for detecting tuples t where []groundStationNetwork reference ConstellationMission(source,target)
1162 */
1163private pattern mustInRelationgroundStationNetwork_reference_ConstellationMission(
1164 problem:LogicProblem, interpretation:PartialInterpretation,
1165 source: DefinedElement, target:DefinedElement)
1166{
1167 find interpretation(problem,interpretation);
1168 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1169 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
1170 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1171 BinaryElementRelationLink.param1(link,source);
1172 BinaryElementRelationLink.param2(link,target);
1173}
1174/**
1175 * Matcher for detecting tuples t where <>groundStationNetwork reference ConstellationMission(source,target)
1176 */
1177private pattern mayInRelationgroundStationNetwork_reference_ConstellationMission(
1178 problem:LogicProblem, interpretation:PartialInterpretation,
1179 source: DefinedElement, target:DefinedElement)
1180{
1181 find interpretation(problem,interpretation);
1182 // The two endpoint of the link have to exist
1183 find mayExist(problem, interpretation, source);
1184 find mayExist(problem, interpretation, target);
1185 // Type consistency
1186 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1187 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,target);
1188 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1189 // the upper bound of the multiplicity should be considered.
1190 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,_);
1191 check(numberOfExistingReferences < 1);
1192 // The reference is containment, then a new reference cannot be create if:
1193 // 1. Multiple parents
1194 neg find mustContains4(problem,interpretation,_,target);
1195 // 2. Circle in the containment hierarchy
1196 neg find mustTransitiveContains(source,target);
1197} or {
1198 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target);
1199}
1200/**
1201 * Matcher for detecting tuples t where []spacecraft reference ConstellationMission(source,target)
1202 */
1203private pattern mustInRelationspacecraft_reference_ConstellationMission(
1204 problem:LogicProblem, interpretation:PartialInterpretation,
1205 source: DefinedElement, target:DefinedElement)
1206{
1207 find interpretation(problem,interpretation);
1208 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1209 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
1210 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1211 BinaryElementRelationLink.param1(link,source);
1212 BinaryElementRelationLink.param2(link,target);
1213}
1214/**
1215 * Matcher for detecting tuples t where <>spacecraft reference ConstellationMission(source,target)
1216 */
1217private pattern mayInRelationspacecraft_reference_ConstellationMission(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 source: DefinedElement, target:DefinedElement)
1220{
1221 find interpretation(problem,interpretation);
1222 // The two endpoint of the link have to exist
1223 find mayExist(problem, interpretation, source);
1224 find mayExist(problem, interpretation, target);
1225 // Type consistency
1226 find mayInstanceOfConstellationMission_class(problem,interpretation,source);
1227 find mayInstanceOfSpacecraft_class(problem,interpretation,target);
1228 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1229 // the upper bound of the multiplicity should be considered.
1230 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,_);
1231 check(numberOfExistingReferences < 50);
1232 // The reference is containment, then a new reference cannot be create if:
1233 // 1. Multiple parents
1234 neg find mustContains4(problem,interpretation,_,target);
1235 // 2. Circle in the containment hierarchy
1236 neg find mustTransitiveContains(source,target);
1237} or {
1238 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target);
1239}
1240/**
1241 * Matcher for detecting tuples t where []commSubsystem reference CommunicatingElement(source,target)
1242 */
1243private pattern mustInRelationcommSubsystem_reference_CommunicatingElement(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 source: DefinedElement, target:DefinedElement)
1246{
1247 find interpretation(problem,interpretation);
1248 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1249 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
1250 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1251 BinaryElementRelationLink.param1(link,source);
1252 BinaryElementRelationLink.param2(link,target);
1253}
1254/**
1255 * Matcher for detecting tuples t where <>commSubsystem reference CommunicatingElement(source,target)
1256 */
1257private pattern mayInRelationcommSubsystem_reference_CommunicatingElement(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 source: DefinedElement, target:DefinedElement)
1260{
1261 find interpretation(problem,interpretation);
1262 // The two endpoint of the link have to exist
1263 find mayExist(problem, interpretation, source);
1264 find mayExist(problem, interpretation, target);
1265 // Type consistency
1266 find mayInstanceOfCommunicatingElement_class(problem,interpretation,source);
1267 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1268 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1269 // the upper bound of the multiplicity should be considered.
1270 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,_);
1271 check(numberOfExistingReferences < 2);
1272 // The reference is containment, then a new reference cannot be create if:
1273 // 1. Multiple parents
1274 neg find mustContains4(problem,interpretation,_,target);
1275 // 2. Circle in the containment hierarchy
1276 neg find mustTransitiveContains(source,target);
1277} or {
1278 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target);
1279}
1280/**
1281 * Matcher for detecting tuples t where []payload reference Spacecraft(source,target)
1282 */
1283private pattern mustInRelationpayload_reference_Spacecraft(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 source: DefinedElement, target:DefinedElement)
1286{
1287 find interpretation(problem,interpretation);
1288 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1289 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"payload reference Spacecraft");
1290 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1291 BinaryElementRelationLink.param1(link,source);
1292 BinaryElementRelationLink.param2(link,target);
1293}
1294/**
1295 * Matcher for detecting tuples t where <>payload reference Spacecraft(source,target)
1296 */
1297private pattern mayInRelationpayload_reference_Spacecraft(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 source: DefinedElement, target:DefinedElement)
1300{
1301 find interpretation(problem,interpretation);
1302 // The two endpoint of the link have to exist
1303 find mayExist(problem, interpretation, source);
1304 find mayExist(problem, interpretation, target);
1305 // Type consistency
1306 find mayInstanceOfSpacecraft_class(problem,interpretation,source);
1307 find mayInstanceOfPayload_class(problem,interpretation,target);
1308 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1309 // the upper bound of the multiplicity should be considered.
1310 numberOfExistingReferences == count find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,_);
1311 check(numberOfExistingReferences < 1);
1312 // The reference is containment, then a new reference cannot be create if:
1313 // 1. Multiple parents
1314 neg find mustContains4(problem,interpretation,_,target);
1315 // 2. Circle in the containment hierarchy
1316 neg find mustTransitiveContains(source,target);
1317} or {
1318 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target);
1319}
1320/**
1321 * Matcher for detecting tuples t where []target reference CommSubsystem(source,target)
1322 */
1323private pattern mustInRelationtarget_reference_CommSubsystem(
1324 problem:LogicProblem, interpretation:PartialInterpretation,
1325 source: DefinedElement, target:DefinedElement)
1326{
1327 find interpretation(problem,interpretation);
1328 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1329 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
1330 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
1331 BinaryElementRelationLink.param1(link,source);
1332 BinaryElementRelationLink.param2(link,target);
1333}
1334/**
1335 * Matcher for detecting tuples t where <>target reference CommSubsystem(source,target)
1336 */
1337private pattern mayInRelationtarget_reference_CommSubsystem(
1338 problem:LogicProblem, interpretation:PartialInterpretation,
1339 source: DefinedElement, target:DefinedElement)
1340{
1341 find interpretation(problem,interpretation);
1342 // The two endpoint of the link have to exist
1343 find mayExist(problem, interpretation, source);
1344 find mayExist(problem, interpretation, target);
1345 // Type consistency
1346 find mayInstanceOfCommSubsystem_class(problem,interpretation,source);
1347 find mayInstanceOfCommSubsystem_class(problem,interpretation,target);
1348 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
1349 // the upper bound of the multiplicity should be considered.
1350 numberOfExistingReferences == count find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,_);
1351 check(numberOfExistingReferences < 1);
1352} or {
1353 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,source,target);
1354}
1355
1356//////////
1357// 1.3 Relation Definition Indexers
1358//////////
1359// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLinkDoesNotStartAtContainingElement
1360private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1361 problem:LogicProblem, interpretation:PartialInterpretation,
1362 var_Element)
1363{
1364 find interpretation(problem,interpretation);
1365 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1366 // Element is exported
1367 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1368 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1369 neg find mayEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1370}
1371private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1372 problem:LogicProblem, interpretation:PartialInterpretation,
1373 var_Element)
1374{
1375 find interpretation(problem,interpretation);
1376 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1377 // Element is exported
1378 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1379 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1380 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1381}
1382private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(
1383 problem:LogicProblem, interpretation:PartialInterpretation,
1384 var_Element)
1385{
1386 find interpretation(problem,interpretation);
1387 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1388 // Element is exported
1389 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm1);
1390 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(problem,interpretation,var_Element,var_Comm2);
1391 neg find mustEquivalent(problem, interpretation, var_Comm1, var_Comm2);
1392}
1393// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries transmittingCommSubsystem
1394private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1395 problem:LogicProblem, interpretation:PartialInterpretation,
1396 var_Element, var_Comm)
1397{
1398 find interpretation(problem,interpretation);
1399 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1400 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1401 // Element is exported
1402 // Comm is exported
1403 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1404 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1405 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1406 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1407 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1408 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1409 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1410 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1411}
1412private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1413 problem:LogicProblem, interpretation:PartialInterpretation,
1414 var_Element, var_Comm)
1415{
1416 find interpretation(problem,interpretation);
1417 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1418 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1419 // Element is exported
1420 // Comm is exported
1421 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1422 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1423 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1424 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
1425 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1426 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1427 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1428 find mayEquivalent(problem, interpretation, var_virtual1, _var__0);
1429}
1430private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_transmittingCommSubsystem(
1431 problem:LogicProblem, interpretation:PartialInterpretation,
1432 var_Element, var_Comm)
1433{
1434 find interpretation(problem,interpretation);
1435 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1436 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1437 // Element is exported
1438 // Comm is exported
1439 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
1440 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Element,var_virtual0);
1441 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1442 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
1443 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_Comm);
1444 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_Comm,var_virtual1);
1445 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1446 find mustEquivalent(problem, interpretation, var_virtual1, _var__0);
1447}
1448// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries notEnoughInterferometryPayloads
1449private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1450 problem:LogicProblem, interpretation:PartialInterpretation,
1451 var_Mission)
1452{
1453 find interpretation(problem,interpretation);
1454 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1455 // Mission is exported
1456 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1457 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1458}
1459private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1460 problem:LogicProblem, interpretation:PartialInterpretation,
1461 var_Mission)
1462{
1463 find interpretation(problem,interpretation);
1464 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1465 // Mission is exported
1466 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1467 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1468}
1469private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(
1470 problem:LogicProblem, interpretation:PartialInterpretation,
1471 var_Mission)
1472{
1473 find interpretation(problem,interpretation);
1474 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1475 // Mission is exported
1476 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1477 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(problem,interpretation,var_Mission);
1478}
1479// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries atLeastTwoInterferometryPayloads
1480private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1481 problem:LogicProblem, interpretation:PartialInterpretation,
1482 var_Mission)
1483{
1484 find interpretation(problem,interpretation);
1485 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1486 // Mission is exported
1487 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1488 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1489 neg find mayEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1490}
1491private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_Mission)
1494{
1495 find interpretation(problem,interpretation);
1496 find mayInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1497 // Mission is exported
1498 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1499 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1500 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1501}
1502private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_atLeastTwoInterferometryPayloads(
1503 problem:LogicProblem, interpretation:PartialInterpretation,
1504 var_Mission)
1505{
1506 find interpretation(problem,interpretation);
1507 find mustInstanceOfInterferometryMission_class(problem,interpretation,var_Mission);
1508 // Mission is exported
1509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft1);
1510 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(problem,interpretation,var_Mission,var_Spacecraft2);
1511 neg find mustEquivalent(problem, interpretation, var_Spacecraft1, var_Spacecraft2);
1512}
1513// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries spacecraftWithInterferometryPayload
1514private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1515 problem:LogicProblem, interpretation:PartialInterpretation,
1516 var_Mission, var_Spacecraft)
1517{
1518 find interpretation(problem,interpretation);
1519 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1520 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1521 // Mission is exported
1522 // Spacecraft is exported
1523 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1524 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1525 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1526 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1527 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1528 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1529 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1530 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1531 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1532}
1533private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1534 problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_Mission, var_Spacecraft)
1536{
1537 find interpretation(problem,interpretation);
1538 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1539 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1540 // Mission is exported
1541 // Spacecraft is exported
1542 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1543 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1544 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1545 find mayEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1546 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1547 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1548 find mayInstanceOfPayload_class(problem,interpretation,var_virtual1);
1549 find mayEquivalent(problem, interpretation, var_virtual1, var_Payload);
1550 find mayInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1551}
1552private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_spacecraftWithInterferometryPayload(
1553 problem:LogicProblem, interpretation:PartialInterpretation,
1554 var_Mission, var_Spacecraft)
1555{
1556 find interpretation(problem,interpretation);
1557 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1558 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1559 // Mission is exported
1560 // Spacecraft is exported
1561 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1562 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1563 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual0);
1564 find mustEquivalent(problem, interpretation, var_virtual0, var_Spacecraft);
1565 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1566 find mustInRelationpayload_reference_Spacecraft(problem,interpretation,var_Spacecraft,var_virtual1);
1567 find mustInstanceOfPayload_class(problem,interpretation,var_virtual1);
1568 find mustEquivalent(problem, interpretation, var_virtual1, var_Payload);
1569 find mustInstanceOfInterferometryPayload_class(problem,interpretation,var_Payload);
1570}
1571// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noLinkToGroundStation
1572private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1573 problem:LogicProblem, interpretation:PartialInterpretation,
1574 var_Spacecraft)
1575{
1576 find interpretation(problem,interpretation);
1577 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1578 // Spacecraft is exported
1579 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1580 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1581 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1582 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1583 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1584 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1585 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1586 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1587 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1588}
1589private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1590 problem:LogicProblem, interpretation:PartialInterpretation,
1591 var_Spacecraft)
1592{
1593 find interpretation(problem,interpretation);
1594 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1595 // Spacecraft is exported
1596 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1597 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1598 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1599 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1600 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1601 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1602 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1603 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1604 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1605}
1606private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(
1607 problem:LogicProblem, interpretation:PartialInterpretation,
1608 var_Spacecraft)
1609{
1610 find interpretation(problem,interpretation);
1611 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1612 // Spacecraft is exported
1613 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1614 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1615 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1616 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1617 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1618 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1619 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1620 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1621 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Spacecraft,var_GroundStation);
1622}
1623// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries noPotentialLinkToGroundStation
1624private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1625 problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_Spacecraft)
1627{
1628 find interpretation(problem,interpretation);
1629 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1630 // Spacecraft is exported
1631 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1632 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1633 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1634 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1635 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1636 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1637 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1638 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1639 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1640}
1641private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1642 problem:LogicProblem, interpretation:PartialInterpretation,
1643 var_Spacecraft)
1644{
1645 find interpretation(problem,interpretation);
1646 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1647 // Spacecraft is exported
1648 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1649 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1650 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1651 find mayEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1652 find mayInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1653 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1654 find mayInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1655 find mayEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1656 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1657}
1658private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(
1659 problem:LogicProblem, interpretation:PartialInterpretation,
1660 var_Spacecraft)
1661{
1662 find interpretation(problem,interpretation);
1663 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
1664 // Spacecraft is exported
1665 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1666 find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual0);
1667 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_virtual0);
1668 find mustEquivalent(problem, interpretation, var_virtual0, var_GroundStation);
1669 find mustInstanceOfConstellationMission_class(problem,interpretation,var_Mission);
1670 find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,var_Mission,var_virtual1);
1671 find mustInstanceOfSpacecraft_class(problem,interpretation,var_virtual1);
1672 find mustEquivalent(problem, interpretation, var_virtual1, var_Spacecraft);
1673 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(problem,interpretation,var_Spacecraft,var_GroundStation);
1674}
1675// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectLinkAllowed
1676private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1677 problem:LogicProblem, interpretation:PartialInterpretation,
1678 var_From, var_To)
1679{
1680 find interpretation(problem,interpretation);
1681 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1682 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1683 // From is exported
1684 // To is exported
1685 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1686}
1687private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1688 problem:LogicProblem, interpretation:PartialInterpretation,
1689 var_From, var_To)
1690{
1691 find interpretation(problem,interpretation);
1692 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1693 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1694 // From is exported
1695 // To is exported
1696 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1697}
1698private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectLinkAllowed(
1699 problem:LogicProblem, interpretation:PartialInterpretation,
1700 var_From, var_To)
1701{
1702 find interpretation(problem,interpretation);
1703 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1704 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1705 // From is exported
1706 // To is exported
1707 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed+(var_From,var_To);
1708}
1709// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries linkAllowed
1710private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1711 problem:LogicProblem, interpretation:PartialInterpretation,
1712 var_From, var_To)
1713{
1714 find interpretation(problem,interpretation);
1715 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1716 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1717 // From is exported
1718 // To is exported
1719 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1720 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1721}or{
1722 find interpretation(problem,interpretation);
1723 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1724 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1725 // From is exported
1726 // To is exported
1727 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1728 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1729}or{
1730 find interpretation(problem,interpretation);
1731 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1732 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1733 // From is exported
1734 // To is exported
1735 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1736 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1737 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1738}
1739private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1740 problem:LogicProblem, interpretation:PartialInterpretation,
1741 var_From, var_To)
1742{
1743 find interpretation(problem,interpretation);
1744 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1745 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1746 // From is exported
1747 // To is exported
1748 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1749 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1750}or{
1751 find interpretation(problem,interpretation);
1752 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1753 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1754 // From is exported
1755 // To is exported
1756 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1757 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1758}or{
1759 find interpretation(problem,interpretation);
1760 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1761 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1762 // From is exported
1763 // To is exported
1764 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1765 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1766 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1767}
1768private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(
1769 problem:LogicProblem, interpretation:PartialInterpretation,
1770 var_From, var_To)
1771{
1772 find interpretation(problem,interpretation);
1773 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1774 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1775 // From is exported
1776 // To is exported
1777 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1778 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(problem,interpretation,var_From);
1779}or{
1780 find interpretation(problem,interpretation);
1781 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1782 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1783 // From is exported
1784 // To is exported
1785 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1786 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1787}or{
1788 find interpretation(problem,interpretation);
1789 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1790 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1791 // From is exported
1792 // To is exported
1793 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(problem,interpretation,var_From,var_To);
1794 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_From);
1795 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_To);
1796}
1797private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1798 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1799}
1800private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1801 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1802}
1803private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(var_From, var_To) {
1804 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_linkAllowed(_,_,var_From, var_To);
1805}
1806// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingAntenna
1807private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1808 problem:LogicProblem, interpretation:PartialInterpretation,
1809 var_From, var_To)
1810{
1811 find interpretation(problem,interpretation);
1812 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1813 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1814 // From is exported
1815 // To is exported
1816 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1817 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1818 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1819 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1820 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1821 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1822 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1823 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1824 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1825}
1826private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1827 problem:LogicProblem, interpretation:PartialInterpretation,
1828 var_From, var_To)
1829{
1830 find interpretation(problem,interpretation);
1831 find mayInstanceOfSpacecraft_class(problem,interpretation,var_From);
1832 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1833 // From is exported
1834 // To is exported
1835 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1836 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1837 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1838 find mayEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1839 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1840 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1841 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1842 find mayEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1843 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1844}
1845private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingAntenna(
1846 problem:LogicProblem, interpretation:PartialInterpretation,
1847 var_From, var_To)
1848{
1849 find interpretation(problem,interpretation);
1850 find mustInstanceOfSpacecraft_class(problem,interpretation,var_From);
1851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1852 // From is exported
1853 // To is exported
1854 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_From);
1855 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_From,var_virtual0);
1856 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
1857 find mustEquivalent(problem, interpretation, var_virtual0, var_FromSys);
1858 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_To);
1859 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_To,var_virtual1);
1860 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
1861 find mustEquivalent(problem, interpretation, var_virtual1, var_ToSys);
1862 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_FromSys,var_ToSys);
1863}
1864// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries matchingCommSubsystem
1865private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1866 problem:LogicProblem, interpretation:PartialInterpretation,
1867 var_From, var_To)
1868{
1869 find interpretation(problem,interpretation);
1870 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1871 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1872 // From is exported
1873 // To is exported
1874 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1875 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1876}or{
1877 find interpretation(problem,interpretation);
1878 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1879 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1880 // From is exported
1881 // To is exported
1882 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1883 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1884}or{
1885 find interpretation(problem,interpretation);
1886 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1887 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1888 // From is exported
1889 // To is exported
1890 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1891 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1892}
1893private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1894 problem:LogicProblem, interpretation:PartialInterpretation,
1895 var_From, var_To)
1896{
1897 find interpretation(problem,interpretation);
1898 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1899 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1900 // From is exported
1901 // To is exported
1902 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1903 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1904}or{
1905 find interpretation(problem,interpretation);
1906 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1907 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1908 // From is exported
1909 // To is exported
1910 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1911 find mayInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1912}or{
1913 find interpretation(problem,interpretation);
1914 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1915 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1916 // From is exported
1917 // To is exported
1918 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1919 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1920}
1921private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(
1922 problem:LogicProblem, interpretation:PartialInterpretation,
1923 var_From, var_To)
1924{
1925 find interpretation(problem,interpretation);
1926 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1927 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1928 // From is exported
1929 // To is exported
1930 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_From);
1931 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_To);
1932}or{
1933 find interpretation(problem,interpretation);
1934 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1935 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1936 // From is exported
1937 // To is exported
1938 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_From);
1939 find mustInstanceOfXCommSubsystem_class(problem,interpretation,var_To);
1940}or{
1941 find interpretation(problem,interpretation);
1942 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_From);
1943 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_To);
1944 // From is exported
1945 // To is exported
1946 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_From);
1947 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_To);
1948}
1949// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat3U
1950private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1951 problem:LogicProblem, interpretation:PartialInterpretation,
1952 var_Sat)
1953{
1954 find interpretation(problem,interpretation);
1955 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1956 // Sat is exported
1957 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1958}
1959private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1960 problem:LogicProblem, interpretation:PartialInterpretation,
1961 var_Sat)
1962{
1963 find interpretation(problem,interpretation);
1964 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1965 // Sat is exported
1966 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1967}
1968private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat3U(
1969 problem:LogicProblem, interpretation:PartialInterpretation,
1970 var_Sat)
1971{
1972 find interpretation(problem,interpretation);
1973 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1974 // Sat is exported
1975 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
1976}
1977// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSat6U
1978private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1979 problem:LogicProblem, interpretation:PartialInterpretation,
1980 var_Sat)
1981{
1982 find interpretation(problem,interpretation);
1983 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1984 // Sat is exported
1985 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1986}
1987private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1988 problem:LogicProblem, interpretation:PartialInterpretation,
1989 var_Sat)
1990{
1991 find interpretation(problem,interpretation);
1992 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1993 // Sat is exported
1994 find mayInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
1995}
1996private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSat6U(
1997 problem:LogicProblem, interpretation:PartialInterpretation,
1998 var_Sat)
1999{
2000 find interpretation(problem,interpretation);
2001 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2002 // Sat is exported
2003 find mustInstanceOfCubeSat6U_class(problem,interpretation,var_Sat);
2004}
2005// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries communicationLoop
2006private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2007 problem:LogicProblem, interpretation:PartialInterpretation,
2008 var_Element)
2009{
2010 find interpretation(problem,interpretation);
2011 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2012 // Element is exported
2013 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2014}
2015private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2016 problem:LogicProblem, interpretation:PartialInterpretation,
2017 var_Element)
2018{
2019 find interpretation(problem,interpretation);
2020 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2021 // Element is exported
2022 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2023}
2024private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(
2025 problem:LogicProblem, interpretation:PartialInterpretation,
2026 var_Element)
2027{
2028 find interpretation(problem,interpretation);
2029 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Element);
2030 // Element is exported
2031 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(problem,interpretation,var_Element,var_Element);
2032}
2033// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries indirectCommunicationLink
2034private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2035 problem:LogicProblem, interpretation:PartialInterpretation,
2036 var_Source, var_Target)
2037{
2038 find interpretation(problem,interpretation);
2039 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2040 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2041 // Source is exported
2042 // Target is exported
2043 find twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2044}
2045private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2046 problem:LogicProblem, interpretation:PartialInterpretation,
2047 var_Source, var_Target)
2048{
2049 find interpretation(problem,interpretation);
2050 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2051 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2052 // Source is exported
2053 // Target is exported
2054 find twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2055}
2056private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_indirectCommunicationLink(
2057 problem:LogicProblem, interpretation:PartialInterpretation,
2058 var_Source, var_Target)
2059{
2060 find interpretation(problem,interpretation);
2061 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2062 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2063 // Source is exported
2064 // Target is exported
2065 find twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink+(var_Source,var_Target);
2066}
2067// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries directCommunicationLink
2068private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2069 problem:LogicProblem, interpretation:PartialInterpretation,
2070 var_Source, var_Target)
2071{
2072 find interpretation(problem,interpretation);
2073 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2074 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2075 // Source is exported
2076 // Target is exported
2077 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2078 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2079 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2080 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2081 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2082 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2083 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2084 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2085 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2086 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2087 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2088 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2089}
2090private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2091 problem:LogicProblem, interpretation:PartialInterpretation,
2092 var_Source, var_Target)
2093{
2094 find interpretation(problem,interpretation);
2095 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2096 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2097 // Source is exported
2098 // Target is exported
2099 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2100 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2101 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2102 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2103 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2104 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2105 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2106 find mayEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2107 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2108 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2109 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2110 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2111}
2112private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(
2113 problem:LogicProblem, interpretation:PartialInterpretation,
2114 var_Source, var_Target)
2115{
2116 find interpretation(problem,interpretation);
2117 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2118 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2119 // Source is exported
2120 // Target is exported
2121 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2122 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2123 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2124 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2125 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Source);
2126 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Source,var_virtual1);
2127 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2128 find mustEquivalent(problem, interpretation, var_virtual1, var_SourceSubsystem);
2129 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2130 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2131 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2132 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetSubsystem);
2133}
2134private pattern twoParam_mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2135 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2136}
2137private pattern twoParam_mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2138 find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2139}
2140private pattern twoParam_currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(var_Source, var_Target) {
2141 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_directCommunicationLink(_,_,var_Source, var_Target);
2142}
2143// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries incompatibleSourceAndTargetBand
2144private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2145 problem:LogicProblem, interpretation:PartialInterpretation,
2146 var_SourceSubsystem)
2147{
2148 find interpretation(problem,interpretation);
2149 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2150 // SourceSubsystem is exported
2151 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2152 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2153 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2154 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2155 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2156}
2157private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2158 problem:LogicProblem, interpretation:PartialInterpretation,
2159 var_SourceSubsystem)
2160{
2161 find interpretation(problem,interpretation);
2162 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2163 // SourceSubsystem is exported
2164 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2165 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2166 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2167 find mayEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2168 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2169}
2170private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(
2171 problem:LogicProblem, interpretation:PartialInterpretation,
2172 var_SourceSubsystem)
2173{
2174 find interpretation(problem,interpretation);
2175 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2176 // SourceSubsystem is exported
2177 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceSubsystem);
2178 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceSubsystem,var_virtual0);
2179 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2180 find mustEquivalent(problem, interpretation, var_virtual0, var_TargetSubsystem);
2181 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_matchingCommSubsystem(problem,interpretation,var_SourceSubsystem,var_TargetSubsystem);
2182}
2183// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries threeUCubeSatWithNonUhfCrossLink
2184private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2185 problem:LogicProblem, interpretation:PartialInterpretation,
2186 var_Sat)
2187{
2188 find interpretation(problem,interpretation);
2189 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2190 // Sat is exported
2191 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2192 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2193 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2194 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2195 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2196 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2197 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2198 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2199 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2200 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2201 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2202 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2203 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2204 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2205}
2206private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2207 problem:LogicProblem, interpretation:PartialInterpretation,
2208 var_Sat)
2209{
2210 find interpretation(problem,interpretation);
2211 find mayInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2212 // Sat is exported
2213 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2214 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2215 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2216 find mayEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2217 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2218 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2219 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2220 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2221 find mayEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2222 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2223 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2224 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2225 find mayEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2226 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2227}
2228private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(
2229 problem:LogicProblem, interpretation:PartialInterpretation,
2230 var_Sat)
2231{
2232 find interpretation(problem,interpretation);
2233 find mustInstanceOfCubeSat3U_class(problem,interpretation,var_Sat);
2234 // Sat is exported
2235 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Sat);
2236 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Sat,var_virtual0);
2237 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2238 find mustEquivalent(problem, interpretation, var_virtual0, var_SourceComm);
2239 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(problem,interpretation,var_SourceComm);
2240 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_SourceComm);
2241 find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,var_SourceComm,var_virtual1);
2242 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual1);
2243 find mustEquivalent(problem, interpretation, var_virtual1, var_TargetComm);
2244 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Target);
2245 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Target,var_virtual2);
2246 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual2);
2247 find mustEquivalent(problem, interpretation, var_virtual2, var_TargetComm);
2248 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(problem,interpretation,var_Target);
2249}
2250// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries commSubsystemBandUhf
2251private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2252 problem:LogicProblem, interpretation:PartialInterpretation,
2253 var_Comm)
2254{
2255 find interpretation(problem,interpretation);
2256 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2257 // Comm is exported
2258 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2259}
2260private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2261 problem:LogicProblem, interpretation:PartialInterpretation,
2262 var_Comm)
2263{
2264 find interpretation(problem,interpretation);
2265 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2266 // Comm is exported
2267 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2268}
2269private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_commSubsystemBandUhf(
2270 problem:LogicProblem, interpretation:PartialInterpretation,
2271 var_Comm)
2272{
2273 find interpretation(problem,interpretation);
2274 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2275 // Comm is exported
2276 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,var_Comm);
2277}
2278// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries groundStationNetwork
2279private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2280 problem:LogicProblem, interpretation:PartialInterpretation,
2281 var_Network)
2282{
2283 find interpretation(problem,interpretation);
2284 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2285 // Network is exported
2286 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2287}
2288private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2289 problem:LogicProblem, interpretation:PartialInterpretation,
2290 var_Network)
2291{
2292 find interpretation(problem,interpretation);
2293 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2294 // Network is exported
2295 find mayInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2296}
2297private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_groundStationNetwork(
2298 problem:LogicProblem, interpretation:PartialInterpretation,
2299 var_Network)
2300{
2301 find interpretation(problem,interpretation);
2302 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2303 // Network is exported
2304 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,var_Network);
2305}
2306// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries cubeSatWithKaAntenna
2307private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2308 problem:LogicProblem, interpretation:PartialInterpretation,
2309 var_Spacecraft)
2310{
2311 find interpretation(problem,interpretation);
2312 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2313 // Spacecraft is exported
2314 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2315 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2316 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2317 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2318 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2319 neg find mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2320}
2321private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2322 problem:LogicProblem, interpretation:PartialInterpretation,
2323 var_Spacecraft)
2324{
2325 find interpretation(problem,interpretation);
2326 find mayInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2327 // Spacecraft is exported
2328 find mayInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2329 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2330 find mayInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2331 find mayEquivalent(problem, interpretation, var_virtual0, var_Comm);
2332 find mayInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2333 neg find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2334}
2335private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(
2336 problem:LogicProblem, interpretation:PartialInterpretation,
2337 var_Spacecraft)
2338{
2339 find interpretation(problem,interpretation);
2340 find mustInstanceOfSpacecraft_class(problem,interpretation,var_Spacecraft);
2341 // Spacecraft is exported
2342 find mustInstanceOfCommunicatingElement_class(problem,interpretation,var_Spacecraft);
2343 find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,var_Spacecraft,var_virtual0);
2344 find mustInstanceOfCommSubsystem_class(problem,interpretation,var_virtual0);
2345 find mustEquivalent(problem, interpretation, var_virtual0, var_Comm);
2346 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,var_Comm);
2347 neg find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(problem,interpretation,var_Spacecraft);
2348}
2349// Must, May and Current queries for pattern hu bme mit inf dslreasoner domains satellite queries smallSat
2350private pattern mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2351 problem:LogicProblem, interpretation:PartialInterpretation,
2352 var_Sat)
2353{
2354 find interpretation(problem,interpretation);
2355 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2356 // Sat is exported
2357 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2358}
2359private pattern mayInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2360 problem:LogicProblem, interpretation:PartialInterpretation,
2361 var_Sat)
2362{
2363 find interpretation(problem,interpretation);
2364 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2365 // Sat is exported
2366 find mayInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2367}
2368private pattern currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_smallSat(
2369 problem:LogicProblem, interpretation:PartialInterpretation,
2370 var_Sat)
2371{
2372 find interpretation(problem,interpretation);
2373 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2374 // Sat is exported
2375 find mustInstanceOfSmallSat_class(problem,interpretation,var_Sat);
2376}
2377
2378//////////
2379// 1.4 Containment Indexer
2380//////////
2381private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
2382 find mustContains4(_,_,source,target);
2383}
2384
2385private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
2386 source: DefinedElement, target: DefinedElement)
2387 { find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,source,target); }or
2388
2389 { find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,source,target); }or
2390
2391 { find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,source,target); }or
2392
2393 { find mustInRelationpayload_reference_Spacecraft(problem,interpretation,source,target); }
2394
2395private pattern mustTransitiveContains(source,target) {
2396 find mustContains2+(source,target);
2397}
2398
2399//////////
2400// 2. Invalidation Indexers
2401//////////
2402// 2.1 Invalidated by WF Queries
2403//////////
2404pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2405 var_Element)
2406{
2407 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2408}
2409pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2410 var_Mission)
2411{
2412 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2413}
2414pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2415 var_Spacecraft)
2416{
2417 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2418}
2419pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2420 var_Spacecraft)
2421{
2422 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2423}
2424pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2425 var_Element)
2426{
2427 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2428}
2429pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2430 var_SourceSubsystem)
2431{
2432 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2433}
2434pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2435 var_Sat)
2436{
2437 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2438}
2439pattern invalidatedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2440 var_Spacecraft)
2441{
2442 find mustInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2443}
2444
2445//////////
2446// 3. Unfinishedness Indexers
2447//////////
2448// 3.1 Unfinishedness Measured by Multiplicity
2449//////////
2450pattern unfinishedLowerMultiplicity_groundStationNetwork_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2451 find interpretation(problem,interpretation);
2452 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2453 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"groundStationNetwork reference ConstellationMission");
2454 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2455 numberOfExistingReferences == count find mustInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,object,_);
2456 check(numberOfExistingReferences < 1);
2457 missingMultiplicity == eval(1-numberOfExistingReferences);
2458}
2459pattern unfinishedLowerMultiplicity_spacecraft_reference_ConstellationMission(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2460 find interpretation(problem,interpretation);
2461 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2462 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"spacecraft reference ConstellationMission");
2463 find mustInstanceOfConstellationMission_class(problem,interpretation,object);
2464 numberOfExistingReferences == count find mustInRelationspacecraft_reference_ConstellationMission(problem,interpretation,object,_);
2465 check(numberOfExistingReferences < 2);
2466 missingMultiplicity == eval(2-numberOfExistingReferences);
2467}
2468pattern unfinishedLowerMultiplicity_commSubsystem_reference_CommunicatingElement(problem:LogicProblem, interpretation:PartialInterpretation, relationIterpretation:PartialRelationInterpretation, object:DefinedElement,missingMultiplicity) {
2469 find interpretation(problem,interpretation);
2470 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2471 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commSubsystem reference CommunicatingElement");
2472 find mustInstanceOfCommunicatingElement_class(problem,interpretation,object);
2473 numberOfExistingReferences == count find mustInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,object,_);
2474 check(numberOfExistingReferences < 1);
2475 missingMultiplicity == eval(1-numberOfExistingReferences);
2476}
2477
2478//////////
2479// 3.2 Unfinishedness Measured by WF Queries
2480//////////
2481pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem:LogicProblem, interpretation:PartialInterpretation,
2482 var_Element)
2483{
2484 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLinkDoesNotStartAtContainingElement(problem,interpretation,var_Element);
2485}
2486pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem:LogicProblem, interpretation:PartialInterpretation,
2487 var_Mission)
2488{
2489 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_notEnoughInterferometryPayloads(problem,interpretation,var_Mission);
2490}
2491pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2492 var_Spacecraft)
2493{
2494 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noLinkToGroundStation(problem,interpretation,var_Spacecraft);
2495}
2496pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem:LogicProblem, interpretation:PartialInterpretation,
2497 var_Spacecraft)
2498{
2499 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_noPotentialLinkToGroundStation(problem,interpretation,var_Spacecraft);
2500}
2501pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem:LogicProblem, interpretation:PartialInterpretation,
2502 var_Element)
2503{
2504 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_communicationLoop(problem,interpretation,var_Element);
2505}
2506pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem:LogicProblem, interpretation:PartialInterpretation,
2507 var_SourceSubsystem)
2508{
2509 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_incompatibleSourceAndTargetBand(problem,interpretation,var_SourceSubsystem);
2510}
2511pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem:LogicProblem, interpretation:PartialInterpretation,
2512 var_Sat)
2513{
2514 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_threeUCubeSatWithNonUhfCrossLink(problem,interpretation,var_Sat);
2515}
2516pattern unfinishedBy_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem:LogicProblem, interpretation:PartialInterpretation,
2517 var_Spacecraft)
2518{
2519 find currentInRelation_pattern_hu_bme_mit_inf_dslreasoner_domains_satellite_queries_cubeSatWithKaAntenna(problem,interpretation,var_Spacecraft);
2520}
2521
2522//////////
2523// 4. Refinement Indexers
2524//////////
2525// 4.1 Object constructors
2526//////////
2527private pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
2528{
2529 find interpretation(problem,interpretation);
2530 find mustInstanceOfCommunicatingElement_class(problem,interpretation,root);
2531 find mustExist(problem, interpretation, root);
2532}or{
2533 find interpretation(problem,interpretation);
2534 find mustInstanceOfConstellationMission_class(problem,interpretation,root);
2535 find mustExist(problem, interpretation, root);
2536}or{
2537 find interpretation(problem,interpretation);
2538 find mustInstanceOfInterferometryPayload_class(problem,interpretation,root);
2539 find mustExist(problem, interpretation, root);
2540}or{
2541 find interpretation(problem,interpretation);
2542 find mustInstanceOfGroundStationNetwork_class(problem,interpretation,root);
2543 find mustExist(problem, interpretation, root);
2544}or{
2545 find interpretation(problem,interpretation);
2546 find mustInstanceOfCommSubsystem_class(problem,interpretation,root);
2547 find mustExist(problem, interpretation, root);
2548}or{
2549 find interpretation(problem,interpretation);
2550 find mustInstanceOfPayload_class(problem,interpretation,root);
2551 find mustExist(problem, interpretation, root);
2552}or{
2553 find interpretation(problem,interpretation);
2554 find mustInstanceOfCubeSat6U_class(problem,interpretation,root);
2555 find mustExist(problem, interpretation, root);
2556}or{
2557 find interpretation(problem,interpretation);
2558 find mustInstanceOfXCommSubsystem_class(problem,interpretation,root);
2559 find mustExist(problem, interpretation, root);
2560}or{
2561 find interpretation(problem,interpretation);
2562 find mustInstanceOfCubeSat3U_class(problem,interpretation,root);
2563 find mustExist(problem, interpretation, root);
2564}or{
2565 find interpretation(problem,interpretation);
2566 find mustInstanceOfKaCommSubsystem_class(problem,interpretation,root);
2567 find mustExist(problem, interpretation, root);
2568}or{
2569 find interpretation(problem,interpretation);
2570 find mustInstanceOfSpacecraft_class(problem,interpretation,root);
2571 find mustExist(problem, interpretation, root);
2572}or{
2573 find interpretation(problem,interpretation);
2574 find mustInstanceOfInterferometryMission_class(problem,interpretation,root);
2575 find mustExist(problem, interpretation, root);
2576}or{
2577 find interpretation(problem,interpretation);
2578 find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,root);
2579 find mustExist(problem, interpretation, root);
2580}or{
2581 find interpretation(problem,interpretation);
2582 find mustInstanceOfSmallSat_class(problem,interpretation,root);
2583 find mustExist(problem, interpretation, root);
2584}or{
2585 find interpretation(problem,interpretation);
2586 find mustInstanceOfCubeSat_class(problem,interpretation,root);
2587 find mustExist(problem, interpretation, root);
2588}or{
2589 find interpretation(problem,interpretation);
2590 find mustInstanceOfConstellationMission_class_DefinedPart(problem,interpretation,root);
2591 find mustExist(problem, interpretation, root);
2592}or{
2593 find interpretation(problem,interpretation);
2594 find mustInstanceOfConstellationMission_class_UndefinedPart(problem,interpretation,root);
2595 find mustExist(problem, interpretation, root);
2596}or{
2597 find interpretation(problem,interpretation);
2598 find mustInstanceOfInterferometryMission_class_DefinedPart(problem,interpretation,root);
2599 find mustExist(problem, interpretation, root);
2600}or{
2601 find interpretation(problem,interpretation);
2602 find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,root);
2603 find mustExist(problem, interpretation, root);
2604}or{
2605 find interpretation(problem,interpretation);
2606 find mustInstanceOfCommunicatingElement_class_DefinedPart(problem,interpretation,root);
2607 find mustExist(problem, interpretation, root);
2608}or{
2609 find interpretation(problem,interpretation);
2610 find mustInstanceOfCommunicatingElement_class_UndefinedPart(problem,interpretation,root);
2611 find mustExist(problem, interpretation, root);
2612}or{
2613 find interpretation(problem,interpretation);
2614 find mustInstanceOfGroundStationNetwork_class_DefinedPart(problem,interpretation,root);
2615 find mustExist(problem, interpretation, root);
2616}or{
2617 find interpretation(problem,interpretation);
2618 find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,root);
2619 find mustExist(problem, interpretation, root);
2620}or{
2621 find interpretation(problem,interpretation);
2622 find mustInstanceOfCommSubsystem_class_DefinedPart(problem,interpretation,root);
2623 find mustExist(problem, interpretation, root);
2624}or{
2625 find interpretation(problem,interpretation);
2626 find mustInstanceOfCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2627 find mustExist(problem, interpretation, root);
2628}or{
2629 find interpretation(problem,interpretation);
2630 find mustInstanceOfXCommSubsystem_class_DefinedPart(problem,interpretation,root);
2631 find mustExist(problem, interpretation, root);
2632}or{
2633 find interpretation(problem,interpretation);
2634 find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2635 find mustExist(problem, interpretation, root);
2636}or{
2637 find interpretation(problem,interpretation);
2638 find mustInstanceOfKaCommSubsystem_class_DefinedPart(problem,interpretation,root);
2639 find mustExist(problem, interpretation, root);
2640}or{
2641 find interpretation(problem,interpretation);
2642 find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,root);
2643 find mustExist(problem, interpretation, root);
2644}
2645pattern createObject_InterferometryPayload_class_by_payload_reference_Spacecraft(
2646 problem:LogicProblem, interpretation:PartialInterpretation,
2647 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2648 container:DefinedElement)
2649{
2650 find interpretation(problem,interpretation);
2651 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2652 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2653 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2654 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"payload reference Spacecraft");
2655 find mustInstanceOfSpacecraft_class(problem,interpretation,container);
2656 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2657 find mayInRelationpayload_reference_Spacecraft(problem,interpretation,container,newObject);
2658 find mustExist(problem, interpretation, container);
2659 neg find mustExist(problem, interpretation, newObject);
2660}
2661pattern createObject_InterferometryPayload_class(
2662 problem:LogicProblem, interpretation:PartialInterpretation,
2663 typeInterpretation:PartialComplexTypeInterpretation)
2664{
2665 find interpretation(problem,interpretation);
2666 neg find hasElementInContainment(problem,interpretation);
2667 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2668 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryPayload class");
2669 find mayInstanceOfInterferometryPayload_class(problem,interpretation,newObject);
2670 find mayExist(problem, interpretation, newObject);
2671 neg find mustExist(problem, interpretation, newObject);
2672}
2673pattern createObject_CubeSat6U_class_by_spacecraft_reference_ConstellationMission(
2674 problem:LogicProblem, interpretation:PartialInterpretation,
2675 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2676 container:DefinedElement)
2677{
2678 find interpretation(problem,interpretation);
2679 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2680 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2681 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2682 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2683 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2684 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2685 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2686 find mustExist(problem, interpretation, container);
2687 neg find mustExist(problem, interpretation, newObject);
2688}
2689pattern createObject_CubeSat6U_class(
2690 problem:LogicProblem, interpretation:PartialInterpretation,
2691 typeInterpretation:PartialComplexTypeInterpretation)
2692{
2693 find interpretation(problem,interpretation);
2694 neg find hasElementInContainment(problem,interpretation);
2695 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2696 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat6U class");
2697 find mayInstanceOfCubeSat6U_class(problem,interpretation,newObject);
2698 find mayExist(problem, interpretation, newObject);
2699 neg find mustExist(problem, interpretation, newObject);
2700}
2701pattern createObject_GroundStationNetwork_class_UndefinedPart_by_groundStationNetwork_reference_ConstellationMission(
2702 problem:LogicProblem, interpretation:PartialInterpretation,
2703 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2704 container:DefinedElement)
2705{
2706 find interpretation(problem,interpretation);
2707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2709 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2710 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"groundStationNetwork reference ConstellationMission");
2711 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2712 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2713 find mayInRelationgroundStationNetwork_reference_ConstellationMission(problem,interpretation,container,newObject);
2714 find mustExist(problem, interpretation, container);
2715 neg find mustExist(problem, interpretation, newObject);
2716}
2717pattern createObject_GroundStationNetwork_class_UndefinedPart(
2718 problem:LogicProblem, interpretation:PartialInterpretation,
2719 typeInterpretation:PartialComplexTypeInterpretation)
2720{
2721 find interpretation(problem,interpretation);
2722 neg find hasElementInContainment(problem,interpretation);
2723 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2724 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"GroundStationNetwork class UndefinedPart");
2725 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,newObject);
2726 find mayExist(problem, interpretation, newObject);
2727 neg find mustExist(problem, interpretation, newObject);
2728}
2729pattern createObject_UHFCommSubsystem_class_by_commSubsystem_reference_CommunicatingElement(
2730 problem:LogicProblem, interpretation:PartialInterpretation,
2731 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2732 container:DefinedElement)
2733{
2734 find interpretation(problem,interpretation);
2735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2737 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2738 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2739 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2740 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2741 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2742 find mustExist(problem, interpretation, container);
2743 neg find mustExist(problem, interpretation, newObject);
2744}
2745pattern createObject_UHFCommSubsystem_class(
2746 problem:LogicProblem, interpretation:PartialInterpretation,
2747 typeInterpretation:PartialComplexTypeInterpretation)
2748{
2749 find interpretation(problem,interpretation);
2750 neg find hasElementInContainment(problem,interpretation);
2751 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2752 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"UHFCommSubsystem class");
2753 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,newObject);
2754 find mayExist(problem, interpretation, newObject);
2755 neg find mustExist(problem, interpretation, newObject);
2756}
2757pattern createObject_SmallSat_class_by_spacecraft_reference_ConstellationMission(
2758 problem:LogicProblem, interpretation:PartialInterpretation,
2759 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2760 container:DefinedElement)
2761{
2762 find interpretation(problem,interpretation);
2763 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2764 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2765 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2766 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2767 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2768 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2769 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2770 find mustExist(problem, interpretation, container);
2771 neg find mustExist(problem, interpretation, newObject);
2772}
2773pattern createObject_SmallSat_class(
2774 problem:LogicProblem, interpretation:PartialInterpretation,
2775 typeInterpretation:PartialComplexTypeInterpretation)
2776{
2777 find interpretation(problem,interpretation);
2778 neg find hasElementInContainment(problem,interpretation);
2779 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2780 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"SmallSat class");
2781 find mayInstanceOfSmallSat_class(problem,interpretation,newObject);
2782 find mayExist(problem, interpretation, newObject);
2783 neg find mustExist(problem, interpretation, newObject);
2784}
2785pattern createObject_KaCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2786 problem:LogicProblem, interpretation:PartialInterpretation,
2787 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2788 container:DefinedElement)
2789{
2790 find interpretation(problem,interpretation);
2791 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2792 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2793 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2794 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2795 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2796 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2797 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2798 find mustExist(problem, interpretation, container);
2799 neg find mustExist(problem, interpretation, newObject);
2800}
2801pattern createObject_KaCommSubsystem_class_UndefinedPart(
2802 problem:LogicProblem, interpretation:PartialInterpretation,
2803 typeInterpretation:PartialComplexTypeInterpretation)
2804{
2805 find interpretation(problem,interpretation);
2806 neg find hasElementInContainment(problem,interpretation);
2807 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2808 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"KaCommSubsystem class UndefinedPart");
2809 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2810 find mayExist(problem, interpretation, newObject);
2811 neg find mustExist(problem, interpretation, newObject);
2812}
2813pattern createObject_CubeSat3U_class_by_spacecraft_reference_ConstellationMission(
2814 problem:LogicProblem, interpretation:PartialInterpretation,
2815 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2816 container:DefinedElement)
2817{
2818 find interpretation(problem,interpretation);
2819 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2820 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2821 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2822 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"spacecraft reference ConstellationMission");
2823 find mustInstanceOfConstellationMission_class(problem,interpretation,container);
2824 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2825 find mayInRelationspacecraft_reference_ConstellationMission(problem,interpretation,container,newObject);
2826 find mustExist(problem, interpretation, container);
2827 neg find mustExist(problem, interpretation, newObject);
2828}
2829pattern createObject_CubeSat3U_class(
2830 problem:LogicProblem, interpretation:PartialInterpretation,
2831 typeInterpretation:PartialComplexTypeInterpretation)
2832{
2833 find interpretation(problem,interpretation);
2834 neg find hasElementInContainment(problem,interpretation);
2835 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2836 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"CubeSat3U class");
2837 find mayInstanceOfCubeSat3U_class(problem,interpretation,newObject);
2838 find mayExist(problem, interpretation, newObject);
2839 neg find mustExist(problem, interpretation, newObject);
2840}
2841pattern createObject_XCommSubsystem_class_UndefinedPart_by_commSubsystem_reference_CommunicatingElement(
2842 problem:LogicProblem, interpretation:PartialInterpretation,
2843 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
2844 container:DefinedElement)
2845{
2846 find interpretation(problem,interpretation);
2847 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2848 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2849 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
2850 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commSubsystem reference CommunicatingElement");
2851 find mustInstanceOfCommunicatingElement_class(problem,interpretation,container);
2852 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2853 find mayInRelationcommSubsystem_reference_CommunicatingElement(problem,interpretation,container,newObject);
2854 find mustExist(problem, interpretation, container);
2855 neg find mustExist(problem, interpretation, newObject);
2856}
2857pattern createObject_XCommSubsystem_class_UndefinedPart(
2858 problem:LogicProblem, interpretation:PartialInterpretation,
2859 typeInterpretation:PartialComplexTypeInterpretation)
2860{
2861 find interpretation(problem,interpretation);
2862 neg find hasElementInContainment(problem,interpretation);
2863 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2864 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"XCommSubsystem class UndefinedPart");
2865 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,newObject);
2866 find mayExist(problem, interpretation, newObject);
2867 neg find mustExist(problem, interpretation, newObject);
2868}
2869pattern createObject_InterferometryMission_class_UndefinedPart(
2870 problem:LogicProblem, interpretation:PartialInterpretation,
2871 typeInterpretation:PartialComplexTypeInterpretation)
2872{
2873 find interpretation(problem,interpretation);
2874 neg find hasElementInContainment(problem,interpretation);
2875 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
2876 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"InterferometryMission class UndefinedPart");
2877 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,newObject);
2878 find mayExist(problem, interpretation, newObject);
2879 neg find mustExist(problem, interpretation, newObject);
2880}
2881
2882//////////
2883// 4.2 Type refinement
2884//////////
2885pattern refineTypeTo_InterferometryPayload_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2886 find interpretation(problem,interpretation);
2887 PartialInterpretation.newElements(interpretation,element);
2888 find mayInstanceOfInterferometryPayload_class(problem,interpretation,element);
2889 neg find mustInstanceOfInterferometryPayload_class(problem,interpretation,element);
2890 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2891 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2892 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2893}
2894pattern refineTypeTo_CubeSat6U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2895 find interpretation(problem,interpretation);
2896 PartialInterpretation.newElements(interpretation,element);
2897 find mayInstanceOfCubeSat6U_class(problem,interpretation,element);
2898 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2899 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2900 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2901 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2902 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2903 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2904 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2905}
2906pattern refineTypeTo_GroundStationNetwork_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2907 find interpretation(problem,interpretation);
2908 PartialInterpretation.newElements(interpretation,element);
2909 find mayInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2910 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2911 neg find mustInstanceOfGroundStationNetwork_class_UndefinedPart(problem,interpretation,element);
2912 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2913 neg find mustInstanceOfSpacecraft_class(problem,interpretation,element);
2914 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2915}
2916pattern refineTypeTo_UHFCommSubsystem_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2917 find interpretation(problem,interpretation);
2918 PartialInterpretation.newElements(interpretation,element);
2919 find mayInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2920 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2921 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2922 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2923 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2924 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2925 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2926}
2927pattern refineTypeTo_SmallSat_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2928 find interpretation(problem,interpretation);
2929 PartialInterpretation.newElements(interpretation,element);
2930 find mayInstanceOfSmallSat_class(problem,interpretation,element);
2931 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2932 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2933 neg find mustInstanceOfCubeSat_class(problem,interpretation,element);
2934 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2935 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2936 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2937}
2938pattern refineTypeTo_KaCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2939 find interpretation(problem,interpretation);
2940 PartialInterpretation.newElements(interpretation,element);
2941 find mayInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2942 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2943 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2944 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2945 neg find mustInstanceOfKaCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2946 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2947 neg find mustInstanceOfXCommSubsystem_class(problem,interpretation,element);
2948}
2949pattern refineTypeTo_CubeSat3U_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2950 find interpretation(problem,interpretation);
2951 PartialInterpretation.newElements(interpretation,element);
2952 find mayInstanceOfCubeSat3U_class(problem,interpretation,element);
2953 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2954 neg find mustInstanceOfCubeSat6U_class(problem,interpretation,element);
2955 neg find mustInstanceOfSmallSat_class(problem,interpretation,element);
2956 neg find mustInstanceOfGroundStationNetwork_class(problem,interpretation,element);
2957 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2958 neg find mustInstanceOfCubeSat3U_class(problem,interpretation,element);
2959 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2960}
2961pattern refineTypeTo_XCommSubsystem_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2962 find interpretation(problem,interpretation);
2963 PartialInterpretation.newElements(interpretation,element);
2964 find mayInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2965 neg find mustInstanceOfConstellationMission_class(problem,interpretation,element);
2966 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2967 neg find mustInstanceOfUHFCommSubsystem_class(problem,interpretation,element);
2968 neg find mustInstanceOfKaCommSubsystem_class(problem,interpretation,element);
2969 neg find mustInstanceOfXCommSubsystem_class_UndefinedPart(problem,interpretation,element);
2970 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2971}
2972pattern refineTypeTo_InterferometryMission_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
2973 find interpretation(problem,interpretation);
2974 PartialInterpretation.newElements(interpretation,element);
2975 find mayInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2976 neg find mustInstanceOfCommunicatingElement_class(problem,interpretation,element);
2977 neg find mustInstanceOfCommSubsystem_class(problem,interpretation,element);
2978 neg find mustInstanceOfInterferometryMission_class_UndefinedPart(problem,interpretation,element);
2979 neg find mustInstanceOfPayload_class(problem,interpretation,element);
2980}
2981
2982//////////
2983// 4.3 Relation refinement
2984//////////
2985pattern refineRelation_target_reference_CommSubsystem(
2986 problem:LogicProblem, interpretation:PartialInterpretation,
2987 relationIterpretation:PartialRelationInterpretation,
2988 from: DefinedElement, to: DefinedElement)
2989{
2990 find interpretation(problem,interpretation);
2991 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
2992 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"target reference CommSubsystem");
2993 find mustExist(problem, interpretation, from);
2994 find mustExist(problem, interpretation, to);
2995 find mustInstanceOfCommSubsystem_class(problem,interpretation,from);
2996 find mustInstanceOfCommSubsystem_class(problem,interpretation,to);
2997 find mayInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2998 neg find mustInRelationtarget_reference_CommSubsystem(problem,interpretation,from,to);
2999}
3000