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