aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/Metrics-Calculation/SocialNetwork_plugin/debug')
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt13
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generated3valued.vql_deactivated2004
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generation.logicproblem1114
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/init.partialmodel98
-rw-r--r--Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/problem.als151
5 files changed, 3372 insertions, 8 deletions
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt
index 44724f1a..0654287f 100644
--- a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/errors.txt
@@ -1,14 +1,11 @@
1Error occured (DiagnosticWrappedException): org.eclipse.emf.ecore.xmi.FeatureNotFoundException: Feature 'vertices' not found. (file:///C:/Users/chenp/Documents/Eclipse/VIATRA-Generator/Metrics/Metrics-Calculation/SocialNetwork_plugin/inputs/start.xmi, 3, 57) 1Error occured (AlloySolverException): Parser Exception
2 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:319) 2 hu.bme.mit.inf.dlsreasoner.alloy.reasoner.builder.AlloyHandler.callSolver(AlloyHandler.java:98)
3 org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:278) 3 hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver.solve(AlloySolver.java:67)
4 org.eclipse.xtext.resource.XtextResourceSet.getResource(XtextResourceSet.java:266) 4 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:329)
5 org.eclipse.xtext.resource.SynchronizedXtextResourceSet.getResource(SynchronizedXtextResourceSet.java:25)
6 hu.bme.mit.inf.dslreasoner.application.execution.ModelLoader.loadModel(ModelLoader.java:41)
7 hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor.executeGenerationTask(GenerationTaskExecutor.java:171)
8 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:141) 5 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor._execute(ScriptExecutor.java:141)
9 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:382) 6 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.execute(ScriptExecutor.java:382)
10 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:122) 7 hu.bme.mit.inf.dslreasoner.application.execution.ScriptExecutor.executeScript(ScriptExecutor.java:122)
11 hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:155) 8 hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:155)
12 hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:147) 9 hu.bme.mit.inf.dslreasoner.application.execution.StandaloneScriptExecutor.executeScript(StandaloneScriptExecutor.java:147)
13 ca.mcgill.ecse.socialnetwork.runner.Main.runWithPath(Main.java:24) 10 ca.mcgill.ecse.socialnetwork.runner.Main.runWithPath(Main.java:24)
14 ca.mcgill.ecse.socialnetwork.runner.Main.main(Main.java:40) 11 ca.mcgill.ecse.socialnetwork.runner.Main.main(Main.java:36)
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generated3valued.vql_deactivated b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generated3valued.vql_deactivated
new file mode 100644
index 00000000..d553f3cf
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generated3valued.vql_deactivated
@@ -0,0 +1,2004 @@
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/////////////////////////
15/** [[exist(element)]]=1 */
16private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
17 find interpretation(problem,interpretation);
18 LogicProblem.elements(problem,element);
19} or {
20 find interpretation(problem,interpretation);
21 PartialInterpretation.newElements(interpretation,element);
22}
23
24/** [[exist(element)]]>=1/2 */
25private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
26 find mustExist(problem,interpretation,element);
27} or {
28 find interpretation(problem,interpretation);
29 neg find elementCloseWorld(element);
30 PartialInterpretation.openWorldElements(interpretation,element);
31}
32
33private pattern elementCloseWorld(element:DefinedElement) {
34 PartialInterpretation.openWorldElements(i,element);
35 PartialInterpretation.maxNewElements(i,0);
36} or {
37 Scope.targetTypeInterpretation(scope,interpretation);
38 PartialTypeInterpratation.elements(interpretation,element);
39 Scope.maxNewElements(scope,0);
40}
41
42////////////////////////
43// 0.2 Equivalence
44////////////////////////
45pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement)
46// For non-primitive type. Boolean types always must equivalent or cannot equivalent
47{
48 find mayExist(problem,interpretation,a);
49 find mayExist(problem,interpretation,b);
50 a == b;
51}
52
53pattern mustEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) {
54// For non-primitive and Boolean primitive type
55 find mustExist(problem,interpretation,a);
56 find mustExist(problem,interpretation,b);
57 a == b;
58}
59
60//////////
61// 1. Problem-Specific Base Indexers
62//////////
63// 1.1 Type Indexers
64//////////
65// 1.1.1 Required Patterns by TypeIndexer
66//////////
67
68private pattern typeInterpretation(problem:LogicProblem, interpretation:PartialInterpretation, type:TypeDeclaration, typeInterpretation:PartialComplexTypeInterpretation) {
69 find interpretation(problem,interpretation);
70 LogicProblem.types(problem,type);
71 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
72 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
73}
74
75private pattern directInstanceOf(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement, type:Type) {
76 find interpretation(problem,interpretation);
77 LogicProblem.types(problem,type);
78 TypeDefinition.elements(type,element);
79} or {
80 find interpretation(problem,interpretation);
81 find typeInterpretation(problem,interpretation,type,typeInterpretation);
82 PartialComplexTypeInterpretation.elements(typeInterpretation,element);
83}
84
85private pattern isPrimitive(element: PrimitiveElement) {
86 PrimitiveElement(element);
87}
88
89//////////
90// 1.1.2 primitive Type Indexers
91//////////
92// Currently unused. Refer primitive types as:
93// > PrimitiveElement(element)
94// specific types are referred as:
95// > BooleanElement(variableName)
96// > IntegerElement(variableName)
97// > RealElement(variableName)
98// > StringElement(variableName)
99// And their value as
100// > BooleanElement.value(variableName,value)
101// > IntegerElement.value(variableName,value)
102// > RealElement.value(variableName,value)
103// > StringElement.value(variableName,value)
104// Whether a value is set is defined by:
105// > PrimitiveElement.valueSet(variableName,isFilled);
106
107//////////
108// 1.1.3 domain-specific Type Indexers
109//////////
110/**
111 * An element must be an instance of type "User class".
112 */
113private pattern mustInstanceOfUser_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
114 Type.name(type,"User class");
115 find directInstanceOf(problem,interpretation,element,type);
116}
117private pattern scopeDisallowsNewUser_class(problem:LogicProblem, interpretation:PartialInterpretation) {
118 find interpretation(problem,interpretation);
119 PartialInterpretation.scopes(interpretation,scope);
120 Scope.targetTypeInterpretation(scope,typeInterpretation);
121 Scope.maxNewElements(scope,0);
122 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
123 Type.name(type,"User class");
124}
125
126/**
127 * An element may be an instance of type "User class".
128 */
129private pattern mayInstanceOfUser_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
130{
131 find interpretation(problem,interpretation);
132 PartialInterpretation.newElements(interpretation,element);
133 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
134 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
135 neg find mustInstanceOfProject_class(problem,interpretation,element);
136 neg find mustInstanceOfCommit_class(problem,interpretation,element);
137 neg find mustInstanceOfIssue_class(problem,interpretation,element);
138 neg find scopeDisallowsNewUser_class(problem, interpretation);
139 neg find isPrimitive(element);
140} or {
141 find interpretation(problem,interpretation);
142 PartialInterpretation.openWorldElements(interpretation,element);
143 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
144 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
145 neg find mustInstanceOfProject_class(problem,interpretation,element);
146 neg find mustInstanceOfCommit_class(problem,interpretation,element);
147 neg find mustInstanceOfIssue_class(problem,interpretation,element);
148 neg find scopeDisallowsNewUser_class(problem, interpretation);
149 neg find isPrimitive(element);
150} or
151{ find mustInstanceOfUser_class(problem,interpretation,element); }
152/**
153 * An element must be an instance of type "Project class".
154 */
155private pattern mustInstanceOfProject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
156 Type.name(type,"Project class");
157 find directInstanceOf(problem,interpretation,element,type);
158}
159private pattern scopeDisallowsNewProject_class(problem:LogicProblem, interpretation:PartialInterpretation) {
160 find interpretation(problem,interpretation);
161 PartialInterpretation.scopes(interpretation,scope);
162 Scope.targetTypeInterpretation(scope,typeInterpretation);
163 Scope.maxNewElements(scope,0);
164 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
165 Type.name(type,"Project class");
166}
167
168/**
169 * An element may be an instance of type "Project class".
170 */
171private pattern mayInstanceOfProject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
172{
173 find interpretation(problem,interpretation);
174 PartialInterpretation.newElements(interpretation,element);
175 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
176 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
177 neg find mustInstanceOfProject_class_UndefinedPart(problem,interpretation,element);
178 neg find mustInstanceOfCommit_class(problem,interpretation,element);
179 neg find mustInstanceOfIssue_class(problem,interpretation,element);
180 neg find mustInstanceOfUser_class(problem,interpretation,element);
181 neg find scopeDisallowsNewProject_class(problem, interpretation);
182 neg find isPrimitive(element);
183} or {
184 find interpretation(problem,interpretation);
185 PartialInterpretation.openWorldElements(interpretation,element);
186 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
187 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
188 neg find mustInstanceOfProject_class_UndefinedPart(problem,interpretation,element);
189 neg find mustInstanceOfCommit_class(problem,interpretation,element);
190 neg find mustInstanceOfIssue_class(problem,interpretation,element);
191 neg find mustInstanceOfUser_class(problem,interpretation,element);
192 neg find scopeDisallowsNewProject_class(problem, interpretation);
193 neg find isPrimitive(element);
194} or
195{ find mustInstanceOfProject_class(problem,interpretation,element); }
196/**
197 * An element must be an instance of type "Commit class".
198 */
199private pattern mustInstanceOfCommit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
200 Type.name(type,"Commit class");
201 find directInstanceOf(problem,interpretation,element,type);
202}
203private pattern scopeDisallowsNewCommit_class(problem:LogicProblem, interpretation:PartialInterpretation) {
204 find interpretation(problem,interpretation);
205 PartialInterpretation.scopes(interpretation,scope);
206 Scope.targetTypeInterpretation(scope,typeInterpretation);
207 Scope.maxNewElements(scope,0);
208 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
209 Type.name(type,"Commit class");
210}
211
212/**
213 * An element may be an instance of type "Commit class".
214 */
215private pattern mayInstanceOfCommit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
216{
217 find interpretation(problem,interpretation);
218 PartialInterpretation.newElements(interpretation,element);
219 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
220 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
221 neg find mustInstanceOfProject_class(problem,interpretation,element);
222 neg find mustInstanceOfUser_class(problem,interpretation,element);
223 neg find mustInstanceOfIssue_class(problem,interpretation,element);
224 neg find scopeDisallowsNewCommit_class(problem, interpretation);
225 neg find isPrimitive(element);
226} or {
227 find interpretation(problem,interpretation);
228 PartialInterpretation.openWorldElements(interpretation,element);
229 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
230 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
231 neg find mustInstanceOfProject_class(problem,interpretation,element);
232 neg find mustInstanceOfUser_class(problem,interpretation,element);
233 neg find mustInstanceOfIssue_class(problem,interpretation,element);
234 neg find scopeDisallowsNewCommit_class(problem, interpretation);
235 neg find isPrimitive(element);
236} or
237{ find mustInstanceOfCommit_class(problem,interpretation,element); }
238/**
239 * An element must be an instance of type "Issue class".
240 */
241private pattern mustInstanceOfIssue_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
242 Type.name(type,"Issue class");
243 find directInstanceOf(problem,interpretation,element,type);
244}
245private pattern scopeDisallowsNewIssue_class(problem:LogicProblem, interpretation:PartialInterpretation) {
246 find interpretation(problem,interpretation);
247 PartialInterpretation.scopes(interpretation,scope);
248 Scope.targetTypeInterpretation(scope,typeInterpretation);
249 Scope.maxNewElements(scope,0);
250 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
251 Type.name(type,"Issue class");
252}
253
254/**
255 * An element may be an instance of type "Issue class".
256 */
257private pattern mayInstanceOfIssue_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
258{
259 find interpretation(problem,interpretation);
260 PartialInterpretation.newElements(interpretation,element);
261 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
262 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
263 neg find mustInstanceOfProject_class(problem,interpretation,element);
264 neg find mustInstanceOfCommit_class(problem,interpretation,element);
265 neg find mustInstanceOfUser_class(problem,interpretation,element);
266 neg find scopeDisallowsNewIssue_class(problem, interpretation);
267 neg find isPrimitive(element);
268} or {
269 find interpretation(problem,interpretation);
270 PartialInterpretation.openWorldElements(interpretation,element);
271 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
272 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
273 neg find mustInstanceOfProject_class(problem,interpretation,element);
274 neg find mustInstanceOfCommit_class(problem,interpretation,element);
275 neg find mustInstanceOfUser_class(problem,interpretation,element);
276 neg find scopeDisallowsNewIssue_class(problem, interpretation);
277 neg find isPrimitive(element);
278} or
279{ find mustInstanceOfIssue_class(problem,interpretation,element); }
280/**
281 * An element must be an instance of type "PullRequest class".
282 */
283private pattern mustInstanceOfPullRequest_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
284 Type.name(type,"PullRequest class");
285 find directInstanceOf(problem,interpretation,element,type);
286}
287private pattern scopeDisallowsNewPullRequest_class(problem:LogicProblem, interpretation:PartialInterpretation) {
288 find interpretation(problem,interpretation);
289 PartialInterpretation.scopes(interpretation,scope);
290 Scope.targetTypeInterpretation(scope,typeInterpretation);
291 Scope.maxNewElements(scope,0);
292 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
293 Type.name(type,"PullRequest class");
294}
295
296/**
297 * An element may be an instance of type "PullRequest class".
298 */
299private pattern mayInstanceOfPullRequest_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
300{
301 find interpretation(problem,interpretation);
302 PartialInterpretation.newElements(interpretation,element);
303 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
304 neg find mustInstanceOfProject_class(problem,interpretation,element);
305 neg find mustInstanceOfCommit_class(problem,interpretation,element);
306 neg find mustInstanceOfIssue_class(problem,interpretation,element);
307 neg find mustInstanceOfUser_class(problem,interpretation,element);
308 neg find scopeDisallowsNewPullRequest_class(problem, interpretation);
309 neg find isPrimitive(element);
310} or {
311 find interpretation(problem,interpretation);
312 PartialInterpretation.openWorldElements(interpretation,element);
313 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
314 neg find mustInstanceOfProject_class(problem,interpretation,element);
315 neg find mustInstanceOfCommit_class(problem,interpretation,element);
316 neg find mustInstanceOfIssue_class(problem,interpretation,element);
317 neg find mustInstanceOfUser_class(problem,interpretation,element);
318 neg find scopeDisallowsNewPullRequest_class(problem, interpretation);
319 neg find isPrimitive(element);
320} or
321{ find mustInstanceOfPullRequest_class(problem,interpretation,element); }
322/**
323 * An element must be an instance of type "IssueEvent class".
324 */
325private pattern mustInstanceOfIssueEvent_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
326 Type.name(type,"IssueEvent class");
327 find directInstanceOf(problem,interpretation,element,type);
328}
329private pattern scopeDisallowsNewIssueEvent_class(problem:LogicProblem, interpretation:PartialInterpretation) {
330 find interpretation(problem,interpretation);
331 PartialInterpretation.scopes(interpretation,scope);
332 Scope.targetTypeInterpretation(scope,typeInterpretation);
333 Scope.maxNewElements(scope,0);
334 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
335 Type.name(type,"IssueEvent class");
336}
337
338/**
339 * An element may be an instance of type "IssueEvent class".
340 */
341private pattern mayInstanceOfIssueEvent_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
342{
343 find interpretation(problem,interpretation);
344 PartialInterpretation.newElements(interpretation,element);
345 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
346 neg find mustInstanceOfProject_class(problem,interpretation,element);
347 neg find mustInstanceOfCommit_class(problem,interpretation,element);
348 neg find mustInstanceOfIssue_class(problem,interpretation,element);
349 neg find mustInstanceOfUser_class(problem,interpretation,element);
350 neg find scopeDisallowsNewIssueEvent_class(problem, interpretation);
351 neg find isPrimitive(element);
352} or {
353 find interpretation(problem,interpretation);
354 PartialInterpretation.openWorldElements(interpretation,element);
355 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
356 neg find mustInstanceOfProject_class(problem,interpretation,element);
357 neg find mustInstanceOfCommit_class(problem,interpretation,element);
358 neg find mustInstanceOfIssue_class(problem,interpretation,element);
359 neg find mustInstanceOfUser_class(problem,interpretation,element);
360 neg find scopeDisallowsNewIssueEvent_class(problem, interpretation);
361 neg find isPrimitive(element);
362} or
363{ find mustInstanceOfIssueEvent_class(problem,interpretation,element); }
364/**
365 * An element must be an instance of type "Action enum".
366 */
367private pattern mustInstanceOfAction_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
368 Type.name(type,"Action enum");
369 find directInstanceOf(problem,interpretation,element,type);
370}
371private pattern scopeDisallowsNewAction_enum(problem:LogicProblem, interpretation:PartialInterpretation) {
372 find interpretation(problem,interpretation);
373 PartialInterpretation.scopes(interpretation,scope);
374 Scope.targetTypeInterpretation(scope,typeInterpretation);
375 Scope.maxNewElements(scope,0);
376 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
377 Type.name(type,"Action enum");
378}
379
380/**
381 * An element may be an instance of type "Action enum".
382 */
383private pattern mayInstanceOfAction_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
384{ find mustInstanceOfAction_enum(problem,interpretation,element); }
385/**
386 * An element must be an instance of type "Project class DefinedPart".
387 */
388private pattern mustInstanceOfProject_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
389 Type.name(type,"Project class DefinedPart");
390 find directInstanceOf(problem,interpretation,element,type);
391}
392private pattern scopeDisallowsNewProject_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
393 find interpretation(problem,interpretation);
394 PartialInterpretation.scopes(interpretation,scope);
395 Scope.targetTypeInterpretation(scope,typeInterpretation);
396 Scope.maxNewElements(scope,0);
397 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
398 Type.name(type,"Project class DefinedPart");
399}
400
401/**
402 * An element may be an instance of type "Project class DefinedPart".
403 */
404private pattern mayInstanceOfProject_class_DefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
405{ find mustInstanceOfProject_class_DefinedPart(problem,interpretation,element); }
406/**
407 * An element must be an instance of type "Project class UndefinedPart".
408 */
409private pattern mustInstanceOfProject_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) {
410 Type.name(type,"Project class UndefinedPart");
411 find directInstanceOf(problem,interpretation,element,type);
412}
413private pattern scopeDisallowsNewProject_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation) {
414 find interpretation(problem,interpretation);
415 PartialInterpretation.scopes(interpretation,scope);
416 Scope.targetTypeInterpretation(scope,typeInterpretation);
417 Scope.maxNewElements(scope,0);
418 PartialComplexTypeInterpretation.interpretationOf(typeInterpretation,type);
419 Type.name(type,"Project class UndefinedPart");
420}
421
422/**
423 * An element may be an instance of type "Project class UndefinedPart".
424 */
425private pattern mayInstanceOfProject_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement)
426{
427 find interpretation(problem,interpretation);
428 PartialInterpretation.newElements(interpretation,element);
429 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
430 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
431 neg find mustInstanceOfCommit_class(problem,interpretation,element);
432 neg find mustInstanceOfIssue_class(problem,interpretation,element);
433 neg find mustInstanceOfUser_class(problem,interpretation,element);
434 neg find scopeDisallowsNewProject_class_UndefinedPart(problem, interpretation);
435 neg find isPrimitive(element);
436} or {
437 find interpretation(problem,interpretation);
438 PartialInterpretation.openWorldElements(interpretation,element);
439 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
440 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
441 neg find mustInstanceOfCommit_class(problem,interpretation,element);
442 neg find mustInstanceOfIssue_class(problem,interpretation,element);
443 neg find mustInstanceOfUser_class(problem,interpretation,element);
444 neg find scopeDisallowsNewProject_class_UndefinedPart(problem, interpretation);
445 neg find isPrimitive(element);
446} or
447{ find mustInstanceOfProject_class_UndefinedPart(problem,interpretation,element); }
448
449//////////
450// 1.2 Relation Declaration Indexers
451//////////
452/**
453 * Matcher for detecting tuples t where []issue reference Project(source,target)
454 */
455private pattern mustInRelationissue_reference_Project(
456 problem:LogicProblem, interpretation:PartialInterpretation,
457 source: DefinedElement, target:DefinedElement)
458{
459 find interpretation(problem,interpretation);
460 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
461 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"issue reference Project");
462 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
463 BinaryElementRelationLink.param1(link,source);
464 BinaryElementRelationLink.param2(link,target);
465}
466/**
467 * Matcher for detecting tuples t where <>issue reference Project(source,target)
468 */
469private pattern mayInRelationissue_reference_Project(
470 problem:LogicProblem, interpretation:PartialInterpretation,
471 source: DefinedElement, target:DefinedElement)
472{
473 find interpretation(problem,interpretation);
474 // The two endpoint of the link have to exist
475 find mayExist(problem, interpretation, source);
476 find mayExist(problem, interpretation, target);
477 // Type consistency
478 find mayInstanceOfProject_class(problem,interpretation,source);
479 find mayInstanceOfIssue_class(problem,interpretation,target);
480 // The reference is containment, then a new reference cannot be create if:
481 // 1. Multiple parents
482 neg find mustContains4(problem,interpretation,_,target);
483 // 2. Circle in the containment hierarchy
484 neg find mustTransitiveContains(source,target);
485} or {
486 find mustInRelationissue_reference_Project(problem,interpretation,source,target);
487}
488/**
489 * Matcher for detecting tuples t where []projectMembers reference Project(source,target)
490 */
491private pattern mustInRelationprojectMembers_reference_Project(
492 problem:LogicProblem, interpretation:PartialInterpretation,
493 source: DefinedElement, target:DefinedElement)
494{
495 find interpretation(problem,interpretation);
496 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
497 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"projectMembers reference Project");
498 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
499 BinaryElementRelationLink.param1(link,source);
500 BinaryElementRelationLink.param2(link,target);
501}
502/**
503 * Matcher for detecting tuples t where <>projectMembers reference Project(source,target)
504 */
505private pattern mayInRelationprojectMembers_reference_Project(
506 problem:LogicProblem, interpretation:PartialInterpretation,
507 source: DefinedElement, target:DefinedElement)
508{
509 find interpretation(problem,interpretation);
510 // The two endpoint of the link have to exist
511 find mayExist(problem, interpretation, source);
512 find mayExist(problem, interpretation, target);
513 // Type consistency
514 find mayInstanceOfProject_class(problem,interpretation,source);
515 find mayInstanceOfUser_class(problem,interpretation,target);
516 // The reference is containment, then a new reference cannot be create if:
517 // 1. Multiple parents
518 neg find mustContains4(problem,interpretation,_,target);
519 // 2. Circle in the containment hierarchy
520 neg find mustTransitiveContains(source,target);
521} or {
522 find mustInRelationprojectMembers_reference_Project(problem,interpretation,source,target);
523}
524/**
525 * Matcher for detecting tuples t where []commits reference Project(source,target)
526 */
527private pattern mustInRelationcommits_reference_Project(
528 problem:LogicProblem, interpretation:PartialInterpretation,
529 source: DefinedElement, target:DefinedElement)
530{
531 find interpretation(problem,interpretation);
532 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
533 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commits reference Project");
534 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
535 BinaryElementRelationLink.param1(link,source);
536 BinaryElementRelationLink.param2(link,target);
537}
538/**
539 * Matcher for detecting tuples t where <>commits reference Project(source,target)
540 */
541private pattern mayInRelationcommits_reference_Project(
542 problem:LogicProblem, interpretation:PartialInterpretation,
543 source: DefinedElement, target:DefinedElement)
544{
545 find interpretation(problem,interpretation);
546 // The two endpoint of the link have to exist
547 find mayExist(problem, interpretation, source);
548 find mayExist(problem, interpretation, target);
549 // Type consistency
550 find mayInstanceOfProject_class(problem,interpretation,source);
551 find mayInstanceOfCommit_class(problem,interpretation,target);
552 // The reference is containment, then a new reference cannot be create if:
553 // 1. Multiple parents
554 neg find mustContains4(problem,interpretation,_,target);
555 // 2. Circle in the containment hierarchy
556 neg find mustTransitiveContains(source,target);
557} or {
558 find mustInRelationcommits_reference_Project(problem,interpretation,source,target);
559}
560/**
561 * Matcher for detecting tuples t where []committer reference Commit(source,target)
562 */
563private pattern mustInRelationcommitter_reference_Commit(
564 problem:LogicProblem, interpretation:PartialInterpretation,
565 source: DefinedElement, target:DefinedElement)
566{
567 find interpretation(problem,interpretation);
568 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
569 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"committer reference Commit");
570 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
571 BinaryElementRelationLink.param1(link,source);
572 BinaryElementRelationLink.param2(link,target);
573}
574/**
575 * Matcher for detecting tuples t where <>committer reference Commit(source,target)
576 */
577private pattern mayInRelationcommitter_reference_Commit(
578 problem:LogicProblem, interpretation:PartialInterpretation,
579 source: DefinedElement, target:DefinedElement)
580{
581 find interpretation(problem,interpretation);
582 // The two endpoint of the link have to exist
583 find mayExist(problem, interpretation, source);
584 find mayExist(problem, interpretation, target);
585 // Type consistency
586 find mayInstanceOfCommit_class(problem,interpretation,source);
587 find mayInstanceOfUser_class(problem,interpretation,target);
588 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
589 // the upper bound of the multiplicity should be considered.
590 numberOfExistingReferences == count find mustInRelationcommitter_reference_Commit(problem,interpretation,source,_);
591 numberOfExistingReferences != 1;
592} or {
593 find mustInRelationcommitter_reference_Commit(problem,interpretation,source,target);
594}
595/**
596 * Matcher for detecting tuples t where []parents reference Commit(source,target)
597 */
598private pattern mustInRelationparents_reference_Commit(
599 problem:LogicProblem, interpretation:PartialInterpretation,
600 source: DefinedElement, target:DefinedElement)
601{
602 find interpretation(problem,interpretation);
603 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
604 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parents reference Commit");
605 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
606 BinaryElementRelationLink.param1(link,source);
607 BinaryElementRelationLink.param2(link,target);
608}
609/**
610 * Matcher for detecting tuples t where <>parents reference Commit(source,target)
611 */
612private pattern mayInRelationparents_reference_Commit(
613 problem:LogicProblem, interpretation:PartialInterpretation,
614 source: DefinedElement, target:DefinedElement)
615{
616 find interpretation(problem,interpretation);
617 // The two endpoint of the link have to exist
618 find mayExist(problem, interpretation, source);
619 find mayExist(problem, interpretation, target);
620 // Type consistency
621 find mayInstanceOfCommit_class(problem,interpretation,source);
622 find mayInstanceOfCommit_class(problem,interpretation,target);
623 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
624 // the upper bound of the multiplicity should be considered.
625 numberOfExistingReferences == count find mustInRelationparents_reference_Commit(problem,interpretation,source,_);
626 numberOfExistingReferences != 2;
627} or {
628 find mustInRelationparents_reference_Commit(problem,interpretation,source,target);
629}
630/**
631 * Matcher for detecting tuples t where []pullrequest reference Commit(source,target)
632 */
633private pattern mustInRelationpullrequest_reference_Commit(
634 problem:LogicProblem, interpretation:PartialInterpretation,
635 source: DefinedElement, target:DefinedElement)
636{
637 find interpretation(problem,interpretation);
638 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
639 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"pullrequest reference Commit");
640 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
641 BinaryElementRelationLink.param1(link,source);
642 BinaryElementRelationLink.param2(link,target);
643}
644/**
645 * Matcher for detecting tuples t where <>pullrequest reference Commit(source,target)
646 */
647private pattern mayInRelationpullrequest_reference_Commit(
648 problem:LogicProblem, interpretation:PartialInterpretation,
649 source: DefinedElement, target:DefinedElement)
650{
651 find interpretation(problem,interpretation);
652 // The two endpoint of the link have to exist
653 find mayExist(problem, interpretation, source);
654 find mayExist(problem, interpretation, target);
655 // Type consistency
656 find mayInstanceOfCommit_class(problem,interpretation,source);
657 find mayInstanceOfPullRequest_class(problem,interpretation,target);
658 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
659 // the upper bound of the multiplicity should be considered.
660 numberOfExistingReferences == count find mustInRelationpullrequest_reference_Commit(problem,interpretation,source,_);
661 numberOfExistingReferences != 1;
662 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
663 // the upper bound of the opposite reference multiplicity should be considered.
664 numberOfExistingOppositeReferences == count find mustInRelationcommit_reference_PullRequest(problem,interpretation,target,_);
665 numberOfExistingOppositeReferences != 1;
666} or {
667 find mustInRelationpullrequest_reference_Commit(problem,interpretation,source,target);
668}
669/**
670 * Matcher for detecting tuples t where []pullrequest reference Issue(source,target)
671 */
672private pattern mustInRelationpullrequest_reference_Issue(
673 problem:LogicProblem, interpretation:PartialInterpretation,
674 source: DefinedElement, target:DefinedElement)
675{
676 find interpretation(problem,interpretation);
677 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
678 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"pullrequest reference Issue");
679 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
680 BinaryElementRelationLink.param1(link,source);
681 BinaryElementRelationLink.param2(link,target);
682}
683/**
684 * Matcher for detecting tuples t where <>pullrequest reference Issue(source,target)
685 */
686private pattern mayInRelationpullrequest_reference_Issue(
687 problem:LogicProblem, interpretation:PartialInterpretation,
688 source: DefinedElement, target:DefinedElement)
689{
690 find interpretation(problem,interpretation);
691 // The two endpoint of the link have to exist
692 find mayExist(problem, interpretation, source);
693 find mayExist(problem, interpretation, target);
694 // Type consistency
695 find mayInstanceOfIssue_class(problem,interpretation,source);
696 find mayInstanceOfPullRequest_class(problem,interpretation,target);
697 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
698 // the upper bound of the multiplicity should be considered.
699 numberOfExistingReferences == count find mustInRelationpullrequest_reference_Issue(problem,interpretation,source,_);
700 numberOfExistingReferences != 1;
701 // The reference is containment, then a new reference cannot be create if:
702 // 1. Multiple parents
703 neg find mustContains4(problem,interpretation,_,target);
704 // 2. Circle in the containment hierarchy
705 neg find mustTransitiveContains(source,target);
706} or {
707 find mustInRelationpullrequest_reference_Issue(problem,interpretation,source,target);
708}
709/**
710 * Matcher for detecting tuples t where []issueevent reference Issue(source,target)
711 */
712private pattern mustInRelationissueevent_reference_Issue(
713 problem:LogicProblem, interpretation:PartialInterpretation,
714 source: DefinedElement, target:DefinedElement)
715{
716 find interpretation(problem,interpretation);
717 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
718 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"issueevent reference Issue");
719 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
720 BinaryElementRelationLink.param1(link,source);
721 BinaryElementRelationLink.param2(link,target);
722}
723/**
724 * Matcher for detecting tuples t where <>issueevent reference Issue(source,target)
725 */
726private pattern mayInRelationissueevent_reference_Issue(
727 problem:LogicProblem, interpretation:PartialInterpretation,
728 source: DefinedElement, target:DefinedElement)
729{
730 find interpretation(problem,interpretation);
731 // The two endpoint of the link have to exist
732 find mayExist(problem, interpretation, source);
733 find mayExist(problem, interpretation, target);
734 // Type consistency
735 find mayInstanceOfIssue_class(problem,interpretation,source);
736 find mayInstanceOfIssueEvent_class(problem,interpretation,target);
737 // The reference is containment, then a new reference cannot be create if:
738 // 1. Multiple parents
739 neg find mustContains4(problem,interpretation,_,target);
740 // 2. Circle in the containment hierarchy
741 neg find mustTransitiveContains(source,target);
742} or {
743 find mustInRelationissueevent_reference_Issue(problem,interpretation,source,target);
744}
745/**
746 * Matcher for detecting tuples t where []commit reference PullRequest(source,target)
747 */
748private pattern mustInRelationcommit_reference_PullRequest(
749 problem:LogicProblem, interpretation:PartialInterpretation,
750 source: DefinedElement, target:DefinedElement)
751{
752 find interpretation(problem,interpretation);
753 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
754 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commit reference PullRequest");
755 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
756 BinaryElementRelationLink.param1(link,source);
757 BinaryElementRelationLink.param2(link,target);
758}
759/**
760 * Matcher for detecting tuples t where <>commit reference PullRequest(source,target)
761 */
762private pattern mayInRelationcommit_reference_PullRequest(
763 problem:LogicProblem, interpretation:PartialInterpretation,
764 source: DefinedElement, target:DefinedElement)
765{
766 find interpretation(problem,interpretation);
767 // The two endpoint of the link have to exist
768 find mayExist(problem, interpretation, source);
769 find mayExist(problem, interpretation, target);
770 // Type consistency
771 find mayInstanceOfPullRequest_class(problem,interpretation,source);
772 find mayInstanceOfCommit_class(problem,interpretation,target);
773 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
774 // the upper bound of the multiplicity should be considered.
775 numberOfExistingReferences == count find mustInRelationcommit_reference_PullRequest(problem,interpretation,source,_);
776 numberOfExistingReferences != 1;
777 // There are "numberOfExistingReferences" currently existing instances of the reference to the target,
778 // the upper bound of the opposite reference multiplicity should be considered.
779 numberOfExistingOppositeReferences == count find mustInRelationpullrequest_reference_Commit(problem,interpretation,target,_);
780 numberOfExistingOppositeReferences != 1;
781} or {
782 find mustInRelationcommit_reference_PullRequest(problem,interpretation,source,target);
783}
784/**
785 * Matcher for detecting tuples t where []user reference IssueEvent(source,target)
786 */
787private pattern mustInRelationuser_reference_IssueEvent(
788 problem:LogicProblem, interpretation:PartialInterpretation,
789 source: DefinedElement, target:DefinedElement)
790{
791 find interpretation(problem,interpretation);
792 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
793 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"user reference IssueEvent");
794 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
795 BinaryElementRelationLink.param1(link,source);
796 BinaryElementRelationLink.param2(link,target);
797}
798/**
799 * Matcher for detecting tuples t where <>user reference IssueEvent(source,target)
800 */
801private pattern mayInRelationuser_reference_IssueEvent(
802 problem:LogicProblem, interpretation:PartialInterpretation,
803 source: DefinedElement, target:DefinedElement)
804{
805 find interpretation(problem,interpretation);
806 // The two endpoint of the link have to exist
807 find mayExist(problem, interpretation, source);
808 find mayExist(problem, interpretation, target);
809 // Type consistency
810 find mayInstanceOfIssueEvent_class(problem,interpretation,source);
811 find mayInstanceOfUser_class(problem,interpretation,target);
812 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
813 // the upper bound of the multiplicity should be considered.
814 numberOfExistingReferences == count find mustInRelationuser_reference_IssueEvent(problem,interpretation,source,_);
815 numberOfExistingReferences != 1;
816} or {
817 find mustInRelationuser_reference_IssueEvent(problem,interpretation,source,target);
818}
819/**
820 * Matcher for detecting tuples t where []action attribute IssueEvent(source,target)
821 */
822private pattern mustInRelationaction_attribute_IssueEvent(
823 problem:LogicProblem, interpretation:PartialInterpretation,
824 source: DefinedElement, target:DefinedElement)
825{
826 find interpretation(problem,interpretation);
827 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
828 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"action attribute IssueEvent");
829 PartialRelationInterpretation.relationlinks(relationIterpretation,link);
830 BinaryElementRelationLink.param1(link,source);
831 BinaryElementRelationLink.param2(link,target);
832}
833/**
834 * Matcher for detecting tuples t where <>action attribute IssueEvent(source,target)
835 */
836private pattern mayInRelationaction_attribute_IssueEvent(
837 problem:LogicProblem, interpretation:PartialInterpretation,
838 source: DefinedElement, target:DefinedElement)
839{
840 find interpretation(problem,interpretation);
841 // The two endpoint of the link have to exist
842 find mayExist(problem, interpretation, source);
843 find mayExist(problem, interpretation, target);
844 // Type consistency
845 find mayInstanceOfIssueEvent_class(problem,interpretation,source);
846 find mayInstanceOfAction_enum(problem,interpretation,target);
847 // There are "numberOfExistingReferences" currently existing instances of the reference from the source,
848 // the upper bound of the multiplicity should be considered.
849 numberOfExistingReferences == count find mustInRelationaction_attribute_IssueEvent(problem,interpretation,source,_);
850 numberOfExistingReferences != 1;
851} or {
852 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,source,target);
853}
854
855//////////
856// 1.3 Relation Definition Indexers
857//////////
858// Must, May and Current queries for pattern queries directParent
859private pattern mustInRelation_pattern_queries_directParent(
860 problem:LogicProblem, interpretation:PartialInterpretation,
861 var_a, var_b)
862{
863 find interpretation(problem,interpretation);
864 // var_a exported
865 // var_b exported
866 find mustInRelationparents_reference_Commit(problem,interpretation,var_a,var_b);
867 find mustInstanceOfCommit_class(problem,interpretation,var_b);
868}
869private pattern mayInRelation_pattern_queries_directParent(
870 problem:LogicProblem, interpretation:PartialInterpretation,
871 var_a, var_b)
872{
873 find interpretation(problem,interpretation);
874 // var_a exported
875 // var_b exported
876 find mayInRelationparents_reference_Commit(problem,interpretation,var_a,var_b);
877 find mayInstanceOfCommit_class(problem,interpretation,var_b);
878}
879private pattern currentInRelation_pattern_queries_directParent(
880 problem:LogicProblem, interpretation:PartialInterpretation,
881 var_a, var_b)
882{
883 find interpretation(problem,interpretation);
884 // var_a exported
885 // var_b exported
886 find mustInRelationparents_reference_Commit(problem,interpretation,var_a,var_b);
887 find mustInstanceOfCommit_class(problem,interpretation,var_b);
888}
889private pattern twoParam_mustInRelation_pattern_queries_directParent(var_a, var_b) {
890 find mustInRelation_pattern_queries_directParent(_,_,var_a, var_b);
891}
892private pattern twoParam_mayInRelation_pattern_queries_directParent(var_a, var_b) {
893 find mayInRelation_pattern_queries_directParent(_,_,var_a, var_b);
894}
895private pattern twoParam_currentInRelation_pattern_queries_directParent(var_a, var_b) {
896 find currentInRelation_pattern_queries_directParent(_,_,var_a, var_b);
897}
898// Must, May and Current queries for pattern queries loopInParent
899private pattern mustInRelation_pattern_queries_loopInParent(
900 problem:LogicProblem, interpretation:PartialInterpretation,
901 var_a)
902{
903 find interpretation(problem,interpretation);
904 // var_a exported
905 find twoParam_mustInRelation_pattern_queries_directParent+(var_a,var_a);
906}
907private pattern mayInRelation_pattern_queries_loopInParent(
908 problem:LogicProblem, interpretation:PartialInterpretation,
909 var_a)
910{
911 find interpretation(problem,interpretation);
912 // var_a exported
913 find twoParam_mayInRelation_pattern_queries_directParent+(var_a,var_a);
914}
915private pattern currentInRelation_pattern_queries_loopInParent(
916 problem:LogicProblem, interpretation:PartialInterpretation,
917 var_a)
918{
919 find interpretation(problem,interpretation);
920 // var_a exported
921 find twoParam_currentInRelation_pattern_queries_directParent+(var_a,var_a);
922}
923// Must, May and Current queries for pattern queries checkAction
924private pattern mustInRelation_pattern_queries_checkAction(
925 problem:LogicProblem, interpretation:PartialInterpretation,
926 var_i, var_e, var_t)
927{
928 find interpretation(problem,interpretation);
929 // var_i exported
930 // var_e exported
931 // var_t exported
932 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
933 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_t);
934}
935private pattern mayInRelation_pattern_queries_checkAction(
936 problem:LogicProblem, interpretation:PartialInterpretation,
937 var_i, var_e, var_t)
938{
939 find interpretation(problem,interpretation);
940 // var_i exported
941 // var_e exported
942 // var_t exported
943 find mayInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
944 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_t);
945}
946private pattern currentInRelation_pattern_queries_checkAction(
947 problem:LogicProblem, interpretation:PartialInterpretation,
948 var_i, var_e, var_t)
949{
950 find interpretation(problem,interpretation);
951 // var_i exported
952 // var_e exported
953 // var_t exported
954 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
955 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_t);
956}
957// Must, May and Current queries for pattern queries checkUserAction
958private pattern mustInRelation_pattern_queries_checkUserAction(
959 problem:LogicProblem, interpretation:PartialInterpretation,
960 var_i, var_u, var_e, var_t)
961{
962 find interpretation(problem,interpretation);
963 // var_i exported
964 // var_u exported
965 // var_e exported
966 // var_t exported
967 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
968 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
969 find mustInstanceOfUser_class(problem,interpretation,var_u);
970 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_t);
971}
972private pattern mayInRelation_pattern_queries_checkUserAction(
973 problem:LogicProblem, interpretation:PartialInterpretation,
974 var_i, var_u, var_e, var_t)
975{
976 find interpretation(problem,interpretation);
977 // var_i exported
978 // var_u exported
979 // var_e exported
980 // var_t exported
981 find mayInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
982 find mayInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
983 find mayInstanceOfUser_class(problem,interpretation,var_u);
984 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_t);
985}
986private pattern currentInRelation_pattern_queries_checkUserAction(
987 problem:LogicProblem, interpretation:PartialInterpretation,
988 var_i, var_u, var_e, var_t)
989{
990 find interpretation(problem,interpretation);
991 // var_i exported
992 // var_u exported
993 // var_e exported
994 // var_t exported
995 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
996 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
997 find mustInstanceOfUser_class(problem,interpretation,var_u);
998 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_t);
999}
1000// Must, May and Current queries for pattern queries isReopen
1001private pattern mustInRelation_pattern_queries_isReopen(
1002 problem:LogicProblem, interpretation:PartialInterpretation,
1003 var_i, var_e)
1004{
1005 find interpretation(problem,interpretation);
1006 // var_i exported
1007 // var_e exported
1008 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1009 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1010 var_a == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1011}
1012private pattern mayInRelation_pattern_queries_isReopen(
1013 problem:LogicProblem, interpretation:PartialInterpretation,
1014 var_i, var_e)
1015{
1016 find interpretation(problem,interpretation);
1017 // var_i exported
1018 // var_e exported
1019 find mayInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1020 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1021 var_a == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1022}
1023private pattern currentInRelation_pattern_queries_isReopen(
1024 problem:LogicProblem, interpretation:PartialInterpretation,
1025 var_i, var_e)
1026{
1027 find interpretation(problem,interpretation);
1028 // var_i exported
1029 // var_e exported
1030 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1031 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1032 var_a == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1033}
1034// Must, May and Current queries for pattern queries isClose
1035private pattern mustInRelation_pattern_queries_isClose(
1036 problem:LogicProblem, interpretation:PartialInterpretation,
1037 var_i, var_e)
1038{
1039 find interpretation(problem,interpretation);
1040 // var_i exported
1041 // var_e exported
1042 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1043 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1044 var_a == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1045}
1046private pattern mayInRelation_pattern_queries_isClose(
1047 problem:LogicProblem, interpretation:PartialInterpretation,
1048 var_i, var_e)
1049{
1050 find interpretation(problem,interpretation);
1051 // var_i exported
1052 // var_e exported
1053 find mayInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1054 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1055 var_a == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1056}
1057private pattern currentInRelation_pattern_queries_isClose(
1058 problem:LogicProblem, interpretation:PartialInterpretation,
1059 var_i, var_e)
1060{
1061 find interpretation(problem,interpretation);
1062 // var_i exported
1063 // var_e exported
1064 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1065 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1066 var_a == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1067}
1068// Must, May and Current queries for pattern queries isUnSubscribe
1069private pattern mustInRelation_pattern_queries_isUnSubscribe(
1070 problem:LogicProblem, interpretation:PartialInterpretation,
1071 var_i, var_u, var_e)
1072{
1073 find interpretation(problem,interpretation);
1074 // var_i exported
1075 // var_u exported
1076 // var_e exported
1077 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1078 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1079 find mustInstanceOfUser_class(problem,interpretation,var_u);
1080 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1081 var_a == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1082}
1083private pattern mayInRelation_pattern_queries_isUnSubscribe(
1084 problem:LogicProblem, interpretation:PartialInterpretation,
1085 var_i, var_u, var_e)
1086{
1087 find interpretation(problem,interpretation);
1088 // var_i exported
1089 // var_u exported
1090 // var_e exported
1091 find mayInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1092 find mayInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1093 find mayInstanceOfUser_class(problem,interpretation,var_u);
1094 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1095 var_a == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1096}
1097private pattern currentInRelation_pattern_queries_isUnSubscribe(
1098 problem:LogicProblem, interpretation:PartialInterpretation,
1099 var_i, var_u, var_e)
1100{
1101 find interpretation(problem,interpretation);
1102 // var_i exported
1103 // var_u exported
1104 // var_e exported
1105 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1106 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1107 find mustInstanceOfUser_class(problem,interpretation,var_u);
1108 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1109 var_a == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1110}
1111// Must, May and Current queries for pattern queries isSubscribe
1112private pattern mustInRelation_pattern_queries_isSubscribe(
1113 problem:LogicProblem, interpretation:PartialInterpretation,
1114 var_i, var_u, var_e)
1115{
1116 find interpretation(problem,interpretation);
1117 // var_i exported
1118 // var_u exported
1119 // var_e exported
1120 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1121 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1122 find mustInstanceOfUser_class(problem,interpretation,var_u);
1123 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1124 var_a == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1125}
1126private pattern mayInRelation_pattern_queries_isSubscribe(
1127 problem:LogicProblem, interpretation:PartialInterpretation,
1128 var_i, var_u, var_e)
1129{
1130 find interpretation(problem,interpretation);
1131 // var_i exported
1132 // var_u exported
1133 // var_e exported
1134 find mayInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1135 find mayInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1136 find mayInstanceOfUser_class(problem,interpretation,var_u);
1137 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1138 var_a == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1139}
1140private pattern currentInRelation_pattern_queries_isSubscribe(
1141 problem:LogicProblem, interpretation:PartialInterpretation,
1142 var_i, var_u, var_e)
1143{
1144 find interpretation(problem,interpretation);
1145 // var_i exported
1146 // var_u exported
1147 // var_e exported
1148 find mustInRelationissueevent_reference_Issue(problem,interpretation,var_i,var_e);
1149 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1150 find mustInstanceOfUser_class(problem,interpretation,var_u);
1151 find mustInRelationaction_attribute_IssueEvent(problem,interpretation,var_e,var_a);
1152 var_a == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1153}
1154// Must, May and Current queries for pattern queries pullRequestOfIssue
1155private pattern mustInRelation_pattern_queries_pullRequestOfIssue(
1156 problem:LogicProblem, interpretation:PartialInterpretation,
1157 var_i, var_pr)
1158{
1159 find interpretation(problem,interpretation);
1160 // var_i exported
1161 // var_pr exported
1162 find mustInRelationpullrequest_reference_Issue(problem,interpretation,var_i,var_pr);
1163 find mustInstanceOfPullRequest_class(problem,interpretation,var_pr);
1164}
1165private pattern mayInRelation_pattern_queries_pullRequestOfIssue(
1166 problem:LogicProblem, interpretation:PartialInterpretation,
1167 var_i, var_pr)
1168{
1169 find interpretation(problem,interpretation);
1170 // var_i exported
1171 // var_pr exported
1172 find mayInRelationpullrequest_reference_Issue(problem,interpretation,var_i,var_pr);
1173 find mayInstanceOfPullRequest_class(problem,interpretation,var_pr);
1174}
1175private pattern currentInRelation_pattern_queries_pullRequestOfIssue(
1176 problem:LogicProblem, interpretation:PartialInterpretation,
1177 var_i, var_pr)
1178{
1179 find interpretation(problem,interpretation);
1180 // var_i exported
1181 // var_pr exported
1182 find mustInRelationpullrequest_reference_Issue(problem,interpretation,var_i,var_pr);
1183 find mustInstanceOfPullRequest_class(problem,interpretation,var_pr);
1184}
1185// Must, May and Current queries for pattern queries mergedIssueWithoutPr
1186private pattern mustInRelation_pattern_queries_mergedIssueWithoutPr(
1187 problem:LogicProblem, interpretation:PartialInterpretation,
1188 var_i)
1189{
1190 find interpretation(problem,interpretation);
1191 // var_i exported
1192 var_virtual0 == const_MERGED_Action;DefinedElement.name(const_MERGED_Action,"MERGED Action"); //LogicProblem.elements(problem,const_MERGED_Action);
1193 find mustInRelation_pattern_queries_checkAction(problem,interpretation,var_i,_var__0,var_virtual0);
1194 neg find mayInRelation_pattern_queries_pullRequestOfIssue(problem,interpretation,var_i,_var__1);
1195}
1196private pattern mayInRelation_pattern_queries_mergedIssueWithoutPr(
1197 problem:LogicProblem, interpretation:PartialInterpretation,
1198 var_i)
1199{
1200 find interpretation(problem,interpretation);
1201 // var_i exported
1202 var_virtual0 == const_MERGED_Action;DefinedElement.name(const_MERGED_Action,"MERGED Action"); //LogicProblem.elements(problem,const_MERGED_Action);
1203 find mayInRelation_pattern_queries_checkAction(problem,interpretation,var_i,_var__0,var_virtual0);
1204 neg find mustInRelation_pattern_queries_pullRequestOfIssue(problem,interpretation,var_i,_var__1);
1205}
1206private pattern currentInRelation_pattern_queries_mergedIssueWithoutPr(
1207 problem:LogicProblem, interpretation:PartialInterpretation,
1208 var_i)
1209{
1210 find interpretation(problem,interpretation);
1211 // var_i exported
1212 var_virtual0 == const_MERGED_Action;DefinedElement.name(const_MERGED_Action,"MERGED Action"); //LogicProblem.elements(problem,const_MERGED_Action);
1213 find currentInRelation_pattern_queries_checkAction(problem,interpretation,var_i,_var__0,var_virtual0);
1214 neg find currentInRelation_pattern_queries_pullRequestOfIssue(problem,interpretation,var_i,_var__1);
1215}
1216// Must, May and Current queries for pattern queries consecutiveClosesWithoutReopen
1217private pattern mustInRelation_pattern_queries_consecutiveClosesWithoutReopen(
1218 problem:LogicProblem, interpretation:PartialInterpretation,
1219 var_i)
1220{
1221 find interpretation(problem,interpretation);
1222 // var_i exported
1223 var_virtual0 == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1224 find mustInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a1,var_virtual0);
1225 var_virtual1 == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1226 find mustInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a2,var_virtual1);
1227 neg find mayEquivalent(problem, interpretation, var_a1, var_a2);
1228 neg find mayInRelation_pattern_queries_isReopen(problem,interpretation,var_i,_var__0);
1229}
1230private pattern mayInRelation_pattern_queries_consecutiveClosesWithoutReopen(
1231 problem:LogicProblem, interpretation:PartialInterpretation,
1232 var_i)
1233{
1234 find interpretation(problem,interpretation);
1235 // var_i exported
1236 var_virtual0 == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1237 find mayInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a1,var_virtual0);
1238 var_virtual1 == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1239 find mayInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a2,var_virtual1);
1240 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1241 neg find mustInRelation_pattern_queries_isReopen(problem,interpretation,var_i,_var__0);
1242}
1243private pattern currentInRelation_pattern_queries_consecutiveClosesWithoutReopen(
1244 problem:LogicProblem, interpretation:PartialInterpretation,
1245 var_i)
1246{
1247 find interpretation(problem,interpretation);
1248 // var_i exported
1249 var_virtual0 == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1250 find currentInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a1,var_virtual0);
1251 var_virtual1 == const_CLOSED_Action;DefinedElement.name(const_CLOSED_Action,"CLOSED Action"); //LogicProblem.elements(problem,const_CLOSED_Action);
1252 find currentInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a2,var_virtual1);
1253 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1254 neg find currentInRelation_pattern_queries_isReopen(problem,interpretation,var_i,_var__0);
1255}
1256// Must, May and Current queries for pattern queries consecutiveReopensWithoutClose
1257private pattern mustInRelation_pattern_queries_consecutiveReopensWithoutClose(
1258 problem:LogicProblem, interpretation:PartialInterpretation,
1259 var_i)
1260{
1261 find interpretation(problem,interpretation);
1262 // var_i exported
1263 var_virtual0 == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1264 find mustInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a1,var_virtual0);
1265 var_virtual1 == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1266 find mustInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a2,var_virtual1);
1267 neg find mayEquivalent(problem, interpretation, var_a1, var_a2);
1268 neg find mayInRelation_pattern_queries_isClose(problem,interpretation,var_i,_var__0);
1269}
1270private pattern mayInRelation_pattern_queries_consecutiveReopensWithoutClose(
1271 problem:LogicProblem, interpretation:PartialInterpretation,
1272 var_i)
1273{
1274 find interpretation(problem,interpretation);
1275 // var_i exported
1276 var_virtual0 == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1277 find mayInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a1,var_virtual0);
1278 var_virtual1 == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1279 find mayInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a2,var_virtual1);
1280 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1281 neg find mustInRelation_pattern_queries_isClose(problem,interpretation,var_i,_var__0);
1282}
1283private pattern currentInRelation_pattern_queries_consecutiveReopensWithoutClose(
1284 problem:LogicProblem, interpretation:PartialInterpretation,
1285 var_i)
1286{
1287 find interpretation(problem,interpretation);
1288 // var_i exported
1289 var_virtual0 == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1290 find currentInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a1,var_virtual0);
1291 var_virtual1 == const_REOPENED_Action;DefinedElement.name(const_REOPENED_Action,"REOPENED Action"); //LogicProblem.elements(problem,const_REOPENED_Action);
1292 find currentInRelation_pattern_queries_checkAction(problem,interpretation,var_i,var_a2,var_virtual1);
1293 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1294 neg find currentInRelation_pattern_queries_isClose(problem,interpretation,var_i,_var__0);
1295}
1296// Must, May and Current queries for pattern queries consecutiveSubWithoutUnSub
1297private pattern mustInRelation_pattern_queries_consecutiveSubWithoutUnSub(
1298 problem:LogicProblem, interpretation:PartialInterpretation,
1299 var_i, var_u)
1300{
1301 find interpretation(problem,interpretation);
1302 // var_i exported
1303 // var_u exported
1304 var_virtual0 == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1305 find mustInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a1,var_virtual0);
1306 var_virtual1 == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1307 find mustInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a2,var_virtual1);
1308 neg find mayEquivalent(problem, interpretation, var_a1, var_a2);
1309 neg find mayInRelation_pattern_queries_isUnSubscribe(problem,interpretation,var_i,var_u,_var__0);
1310}
1311private pattern mayInRelation_pattern_queries_consecutiveSubWithoutUnSub(
1312 problem:LogicProblem, interpretation:PartialInterpretation,
1313 var_i, var_u)
1314{
1315 find interpretation(problem,interpretation);
1316 // var_i exported
1317 // var_u exported
1318 var_virtual0 == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1319 find mayInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a1,var_virtual0);
1320 var_virtual1 == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1321 find mayInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a2,var_virtual1);
1322 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1323 neg find mustInRelation_pattern_queries_isUnSubscribe(problem,interpretation,var_i,var_u,_var__0);
1324}
1325private pattern currentInRelation_pattern_queries_consecutiveSubWithoutUnSub(
1326 problem:LogicProblem, interpretation:PartialInterpretation,
1327 var_i, var_u)
1328{
1329 find interpretation(problem,interpretation);
1330 // var_i exported
1331 // var_u exported
1332 var_virtual0 == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1333 find currentInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a1,var_virtual0);
1334 var_virtual1 == const_SUBSCRIBED_Action;DefinedElement.name(const_SUBSCRIBED_Action,"SUBSCRIBED Action"); //LogicProblem.elements(problem,const_SUBSCRIBED_Action);
1335 find currentInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a2,var_virtual1);
1336 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1337 neg find currentInRelation_pattern_queries_isUnSubscribe(problem,interpretation,var_i,var_u,_var__0);
1338}
1339// Must, May and Current queries for pattern queries consecutiveUnSubWithoutSub
1340private pattern mustInRelation_pattern_queries_consecutiveUnSubWithoutSub(
1341 problem:LogicProblem, interpretation:PartialInterpretation,
1342 var_i, var_u)
1343{
1344 find interpretation(problem,interpretation);
1345 // var_i exported
1346 // var_u exported
1347 var_virtual0 == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1348 find mustInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a1,var_virtual0);
1349 var_virtual1 == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1350 find mustInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a2,var_virtual1);
1351 neg find mayEquivalent(problem, interpretation, var_a1, var_a2);
1352 neg find mayInRelation_pattern_queries_isSubscribe(problem,interpretation,var_i,var_u,_var__0);
1353}
1354private pattern mayInRelation_pattern_queries_consecutiveUnSubWithoutSub(
1355 problem:LogicProblem, interpretation:PartialInterpretation,
1356 var_i, var_u)
1357{
1358 find interpretation(problem,interpretation);
1359 // var_i exported
1360 // var_u exported
1361 var_virtual0 == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1362 find mayInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a1,var_virtual0);
1363 var_virtual1 == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1364 find mayInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a2,var_virtual1);
1365 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1366 neg find mustInRelation_pattern_queries_isSubscribe(problem,interpretation,var_i,var_u,_var__0);
1367}
1368private pattern currentInRelation_pattern_queries_consecutiveUnSubWithoutSub(
1369 problem:LogicProblem, interpretation:PartialInterpretation,
1370 var_i, var_u)
1371{
1372 find interpretation(problem,interpretation);
1373 // var_i exported
1374 // var_u exported
1375 var_virtual0 == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1376 find currentInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a1,var_virtual0);
1377 var_virtual1 == const_UNSUBSCRIBED_Action;DefinedElement.name(const_UNSUBSCRIBED_Action,"UNSUBSCRIBED Action"); //LogicProblem.elements(problem,const_UNSUBSCRIBED_Action);
1378 find currentInRelation_pattern_queries_checkUserAction(problem,interpretation,var_i,var_u,var_a2,var_virtual1);
1379 neg find mustEquivalent(problem, interpretation, var_a1, var_a2);
1380 neg find currentInRelation_pattern_queries_isSubscribe(problem,interpretation,var_i,var_u,_var__0);
1381}
1382// Must, May and Current queries for pattern queries committer
1383private pattern mustInRelation_pattern_queries_committer(
1384 problem:LogicProblem, interpretation:PartialInterpretation,
1385 var_c, var_u)
1386{
1387 find interpretation(problem,interpretation);
1388 // var_c exported
1389 // var_u exported
1390 find mustInRelationcommitter_reference_Commit(problem,interpretation,var_c,var_u);
1391 find mustInstanceOfUser_class(problem,interpretation,var_u);
1392}
1393private pattern mayInRelation_pattern_queries_committer(
1394 problem:LogicProblem, interpretation:PartialInterpretation,
1395 var_c, var_u)
1396{
1397 find interpretation(problem,interpretation);
1398 // var_c exported
1399 // var_u exported
1400 find mayInRelationcommitter_reference_Commit(problem,interpretation,var_c,var_u);
1401 find mayInstanceOfUser_class(problem,interpretation,var_u);
1402}
1403private pattern currentInRelation_pattern_queries_committer(
1404 problem:LogicProblem, interpretation:PartialInterpretation,
1405 var_c, var_u)
1406{
1407 find interpretation(problem,interpretation);
1408 // var_c exported
1409 // var_u exported
1410 find mustInRelationcommitter_reference_Commit(problem,interpretation,var_c,var_u);
1411 find mustInstanceOfUser_class(problem,interpretation,var_u);
1412}
1413// Must, May and Current queries for pattern queries eventUser
1414private pattern mustInRelation_pattern_queries_eventUser(
1415 problem:LogicProblem, interpretation:PartialInterpretation,
1416 var_e, var_u)
1417{
1418 find interpretation(problem,interpretation);
1419 // var_e exported
1420 // var_u exported
1421 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1422 find mustInstanceOfUser_class(problem,interpretation,var_u);
1423}
1424private pattern mayInRelation_pattern_queries_eventUser(
1425 problem:LogicProblem, interpretation:PartialInterpretation,
1426 var_e, var_u)
1427{
1428 find interpretation(problem,interpretation);
1429 // var_e exported
1430 // var_u exported
1431 find mayInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1432 find mayInstanceOfUser_class(problem,interpretation,var_u);
1433}
1434private pattern currentInRelation_pattern_queries_eventUser(
1435 problem:LogicProblem, interpretation:PartialInterpretation,
1436 var_e, var_u)
1437{
1438 find interpretation(problem,interpretation);
1439 // var_e exported
1440 // var_u exported
1441 find mustInRelationuser_reference_IssueEvent(problem,interpretation,var_e,var_u);
1442 find mustInstanceOfUser_class(problem,interpretation,var_u);
1443}
1444// Must, May and Current queries for pattern queries noCommitter
1445private pattern mustInRelation_pattern_queries_noCommitter(
1446 problem:LogicProblem, interpretation:PartialInterpretation,
1447 var_c)
1448{
1449 find interpretation(problem,interpretation);
1450 // var_c exported
1451 find mustInstanceOfCommit_class(problem,interpretation,var_c);
1452 neg find mayInRelation_pattern_queries_committer(problem,interpretation,var_c,_var__0);
1453}
1454private pattern mayInRelation_pattern_queries_noCommitter(
1455 problem:LogicProblem, interpretation:PartialInterpretation,
1456 var_c)
1457{
1458 find interpretation(problem,interpretation);
1459 // var_c exported
1460 find mayInstanceOfCommit_class(problem,interpretation,var_c);
1461 neg find mustInRelation_pattern_queries_committer(problem,interpretation,var_c,_var__0);
1462}
1463private pattern currentInRelation_pattern_queries_noCommitter(
1464 problem:LogicProblem, interpretation:PartialInterpretation,
1465 var_c)
1466{
1467 find interpretation(problem,interpretation);
1468 // var_c exported
1469 find mustInstanceOfCommit_class(problem,interpretation,var_c);
1470 neg find currentInRelation_pattern_queries_committer(problem,interpretation,var_c,_var__0);
1471}
1472// Must, May and Current queries for pattern queries noUser
1473private pattern mustInRelation_pattern_queries_noUser(
1474 problem:LogicProblem, interpretation:PartialInterpretation,
1475 var_e)
1476{
1477 find interpretation(problem,interpretation);
1478 // var_e exported
1479 find mustInstanceOfIssueEvent_class(problem,interpretation,var_e);
1480 neg find mayInRelation_pattern_queries_eventUser(problem,interpretation,var_e,_var__0);
1481}
1482private pattern mayInRelation_pattern_queries_noUser(
1483 problem:LogicProblem, interpretation:PartialInterpretation,
1484 var_e)
1485{
1486 find interpretation(problem,interpretation);
1487 // var_e exported
1488 find mayInstanceOfIssueEvent_class(problem,interpretation,var_e);
1489 neg find mustInRelation_pattern_queries_eventUser(problem,interpretation,var_e,_var__0);
1490}
1491private pattern currentInRelation_pattern_queries_noUser(
1492 problem:LogicProblem, interpretation:PartialInterpretation,
1493 var_e)
1494{
1495 find interpretation(problem,interpretation);
1496 // var_e exported
1497 find mustInstanceOfIssueEvent_class(problem,interpretation,var_e);
1498 neg find currentInRelation_pattern_queries_eventUser(problem,interpretation,var_e,_var__0);
1499}
1500
1501//////////
1502// 1.4 Containment Indexer
1503//////////
1504private pattern mustContains2(source: DefinedElement, target: DefinedElement) {
1505 find mustContains4(_,_,source,target);
1506}
1507
1508private pattern mustContains4(problem:LogicProblem, interpretation:PartialInterpretation,
1509 source: DefinedElement, target: DefinedElement)
1510 { find mustInRelationissue_reference_Project(problem,interpretation,source,target); }or
1511
1512 { find mustInRelationprojectMembers_reference_Project(problem,interpretation,source,target); }or
1513
1514 { find mustInRelationcommits_reference_Project(problem,interpretation,source,target); }or
1515
1516 { find mustInRelationpullrequest_reference_Issue(problem,interpretation,source,target); }or
1517
1518 { find mustInRelationissueevent_reference_Issue(problem,interpretation,source,target); }
1519
1520private pattern mustTransitiveContains(source,target) {
1521 find mustContains2+(source,target);
1522}
1523
1524//////////
1525// 2. Invalidation Indexers
1526//////////
1527// 2.1 Invalidated by WF Queries
1528//////////
1529pattern invalidatedBy_pattern_queries_loopInParent(problem:LogicProblem, interpretation:PartialInterpretation,
1530 var_a)
1531{
1532 find mustInRelation_pattern_queries_loopInParent(problem,interpretation,var_a);
1533}
1534pattern invalidatedBy_pattern_queries_mergedIssueWithoutPr(problem:LogicProblem, interpretation:PartialInterpretation,
1535 var_i)
1536{
1537 find mustInRelation_pattern_queries_mergedIssueWithoutPr(problem,interpretation,var_i);
1538}
1539pattern invalidatedBy_pattern_queries_consecutiveClosesWithoutReopen(problem:LogicProblem, interpretation:PartialInterpretation,
1540 var_i)
1541{
1542 find mustInRelation_pattern_queries_consecutiveClosesWithoutReopen(problem,interpretation,var_i);
1543}
1544pattern invalidatedBy_pattern_queries_consecutiveReopensWithoutClose(problem:LogicProblem, interpretation:PartialInterpretation,
1545 var_i)
1546{
1547 find mustInRelation_pattern_queries_consecutiveReopensWithoutClose(problem,interpretation,var_i);
1548}
1549pattern invalidatedBy_pattern_queries_consecutiveSubWithoutUnSub(problem:LogicProblem, interpretation:PartialInterpretation,
1550 var_i, var_u)
1551{
1552 find mustInRelation_pattern_queries_consecutiveSubWithoutUnSub(problem,interpretation,var_i,var_u);
1553}
1554pattern invalidatedBy_pattern_queries_consecutiveUnSubWithoutSub(problem:LogicProblem, interpretation:PartialInterpretation,
1555 var_i, var_u)
1556{
1557 find mustInRelation_pattern_queries_consecutiveUnSubWithoutSub(problem,interpretation,var_i,var_u);
1558}
1559pattern invalidatedBy_pattern_queries_noCommitter(problem:LogicProblem, interpretation:PartialInterpretation,
1560 var_c)
1561{
1562 find mustInRelation_pattern_queries_noCommitter(problem,interpretation,var_c);
1563}
1564pattern invalidatedBy_pattern_queries_noUser(problem:LogicProblem, interpretation:PartialInterpretation,
1565 var_e)
1566{
1567 find mustInRelation_pattern_queries_noUser(problem,interpretation,var_e);
1568}
1569
1570//////////
1571// 3. Unfinishedness Indexers
1572//////////
1573// 3.1 Unfinishedness Measured by Multiplicity
1574//////////
1575
1576
1577
1578
1579
1580
1581private pattern existingMultiplicity_committer_reference_Commit(problem:LogicProblem, interpretation:PartialInterpretation, object:DefinedElement, numberOfExistingReferences:java Integer) {
1582 find interpretation(problem,interpretation);
1583 find mustExist(problem,interpretation,object);
1584 find mustInstanceOfCommit_class(problem,interpretation,object);
1585 numberOfExistingReferences == count find mustInRelationcommitter_reference_Commit(problem,interpretation,object,_);
1586}
1587
1588
1589
1590
1591
1592
1593private pattern existingMultiplicity_user_reference_IssueEvent(problem:LogicProblem, interpretation:PartialInterpretation, object:DefinedElement, numberOfExistingReferences:java Integer) {
1594 find interpretation(problem,interpretation);
1595 find mustExist(problem,interpretation,object);
1596 find mustInstanceOfIssueEvent_class(problem,interpretation,object);
1597 numberOfExistingReferences == count find mustInRelationuser_reference_IssueEvent(problem,interpretation,object,_);
1598}
1599
1600
1601
1602//////////
1603// 3.2 Unfinishedness Measured by WF Queries
1604//////////
1605pattern unfinishedBy_pattern_queries_loopInParent(problem:LogicProblem, interpretation:PartialInterpretation,
1606 var_a)
1607{
1608 find currentInRelation_pattern_queries_loopInParent(problem,interpretation,var_a);
1609}
1610pattern unfinishedBy_pattern_queries_mergedIssueWithoutPr(problem:LogicProblem, interpretation:PartialInterpretation,
1611 var_i)
1612{
1613 find currentInRelation_pattern_queries_mergedIssueWithoutPr(problem,interpretation,var_i);
1614}
1615pattern unfinishedBy_pattern_queries_consecutiveClosesWithoutReopen(problem:LogicProblem, interpretation:PartialInterpretation,
1616 var_i)
1617{
1618 find currentInRelation_pattern_queries_consecutiveClosesWithoutReopen(problem,interpretation,var_i);
1619}
1620pattern unfinishedBy_pattern_queries_consecutiveReopensWithoutClose(problem:LogicProblem, interpretation:PartialInterpretation,
1621 var_i)
1622{
1623 find currentInRelation_pattern_queries_consecutiveReopensWithoutClose(problem,interpretation,var_i);
1624}
1625pattern unfinishedBy_pattern_queries_consecutiveSubWithoutUnSub(problem:LogicProblem, interpretation:PartialInterpretation,
1626 var_i, var_u)
1627{
1628 find currentInRelation_pattern_queries_consecutiveSubWithoutUnSub(problem,interpretation,var_i,var_u);
1629}
1630pattern unfinishedBy_pattern_queries_consecutiveUnSubWithoutSub(problem:LogicProblem, interpretation:PartialInterpretation,
1631 var_i, var_u)
1632{
1633 find currentInRelation_pattern_queries_consecutiveUnSubWithoutSub(problem,interpretation,var_i,var_u);
1634}
1635pattern unfinishedBy_pattern_queries_noCommitter(problem:LogicProblem, interpretation:PartialInterpretation,
1636 var_c)
1637{
1638 find currentInRelation_pattern_queries_noCommitter(problem,interpretation,var_c);
1639}
1640pattern unfinishedBy_pattern_queries_noUser(problem:LogicProblem, interpretation:PartialInterpretation,
1641 var_e)
1642{
1643 find currentInRelation_pattern_queries_noUser(problem,interpretation,var_e);
1644}
1645
1646//////////
1647// 4. Refinement Indexers
1648//////////
1649// 4.1 Object constructors
1650//////////
1651pattern hasElementInContainment(problem:LogicProblem, interpretation:PartialInterpretation)
1652{
1653 find interpretation(problem,interpretation);
1654 find mustInstanceOfUser_class(problem,interpretation,root);
1655 find mustExist(problem, interpretation, root);
1656}or{
1657 find interpretation(problem,interpretation);
1658 find mustInstanceOfProject_class(problem,interpretation,root);
1659 find mustExist(problem, interpretation, root);
1660}or{
1661 find interpretation(problem,interpretation);
1662 find mustInstanceOfIssueEvent_class(problem,interpretation,root);
1663 find mustExist(problem, interpretation, root);
1664}or{
1665 find interpretation(problem,interpretation);
1666 find mustInstanceOfCommit_class(problem,interpretation,root);
1667 find mustExist(problem, interpretation, root);
1668}or{
1669 find interpretation(problem,interpretation);
1670 find mustInstanceOfPullRequest_class(problem,interpretation,root);
1671 find mustExist(problem, interpretation, root);
1672}or{
1673 find interpretation(problem,interpretation);
1674 find mustInstanceOfIssue_class(problem,interpretation,root);
1675 find mustExist(problem, interpretation, root);
1676}or{
1677 find interpretation(problem,interpretation);
1678 find mustInstanceOfProject_class_DefinedPart(problem,interpretation,root);
1679 find mustExist(problem, interpretation, root);
1680}or{
1681 find interpretation(problem,interpretation);
1682 find mustInstanceOfProject_class_UndefinedPart(problem,interpretation,root);
1683 find mustExist(problem, interpretation, root);
1684}
1685pattern createObject_IssueEvent_class_by_issueevent_reference_Issue(
1686 problem:LogicProblem, interpretation:PartialInterpretation,
1687 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1688 container:DefinedElement)
1689{
1690 find interpretation(problem,interpretation);
1691 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1692 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"IssueEvent class");
1693 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1694 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"issueevent reference Issue");
1695 find mustInstanceOfIssue_class(problem,interpretation,container);
1696 find mayInstanceOfIssueEvent_class(problem,interpretation,newObject);
1697 find mayInRelationissueevent_reference_Issue(problem,interpretation,container,newObject);
1698 find mustExist(problem, interpretation, container);
1699 neg find mustExist(problem, interpretation, newObject);
1700}
1701pattern createObject_IssueEvent_class(
1702 problem:LogicProblem, interpretation:PartialInterpretation,
1703 typeInterpretation:PartialComplexTypeInterpretation)
1704{
1705 find interpretation(problem,interpretation);
1706 neg find hasElementInContainment(problem,interpretation);
1707 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1708 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"IssueEvent class");
1709 find mayInstanceOfIssueEvent_class(problem,interpretation,newObject);
1710 find mayExist(problem, interpretation, newObject);
1711 neg find mustExist(problem, interpretation, newObject);
1712}
1713pattern createObject_PullRequest_class_by_pullrequest_reference_Issue(
1714 problem:LogicProblem, interpretation:PartialInterpretation,
1715 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1716 container:DefinedElement)
1717{
1718 find interpretation(problem,interpretation);
1719 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1720 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"PullRequest class");
1721 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1722 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"pullrequest reference Issue");
1723 find mustInstanceOfIssue_class(problem,interpretation,container);
1724 find mayInstanceOfPullRequest_class(problem,interpretation,newObject);
1725 find mayInRelationpullrequest_reference_Issue(problem,interpretation,container,newObject);
1726 find mustExist(problem, interpretation, container);
1727 neg find mustExist(problem, interpretation, newObject);
1728}
1729pattern createObject_PullRequest_class(
1730 problem:LogicProblem, interpretation:PartialInterpretation,
1731 typeInterpretation:PartialComplexTypeInterpretation)
1732{
1733 find interpretation(problem,interpretation);
1734 neg find hasElementInContainment(problem,interpretation);
1735 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1736 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"PullRequest class");
1737 find mayInstanceOfPullRequest_class(problem,interpretation,newObject);
1738 find mayExist(problem, interpretation, newObject);
1739 neg find mustExist(problem, interpretation, newObject);
1740}
1741pattern createObject_Project_class_UndefinedPart(
1742 problem:LogicProblem, interpretation:PartialInterpretation,
1743 typeInterpretation:PartialComplexTypeInterpretation)
1744{
1745 find interpretation(problem,interpretation);
1746 neg find hasElementInContainment(problem,interpretation);
1747 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1748 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Project class UndefinedPart");
1749 find mayInstanceOfProject_class_UndefinedPart(problem,interpretation,newObject);
1750 find mayExist(problem, interpretation, newObject);
1751 neg find mustExist(problem, interpretation, newObject);
1752}
1753pattern createObject_Commit_class_by_commits_reference_Project(
1754 problem:LogicProblem, interpretation:PartialInterpretation,
1755 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1756 container:DefinedElement)
1757{
1758 find interpretation(problem,interpretation);
1759 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1760 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Commit class");
1761 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1762 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"commits reference Project");
1763 find mustInstanceOfProject_class(problem,interpretation,container);
1764 find mayInstanceOfCommit_class(problem,interpretation,newObject);
1765 find mayInRelationcommits_reference_Project(problem,interpretation,container,newObject);
1766 find mustExist(problem, interpretation, container);
1767 neg find mustExist(problem, interpretation, newObject);
1768}
1769pattern createObject_Commit_class(
1770 problem:LogicProblem, interpretation:PartialInterpretation,
1771 typeInterpretation:PartialComplexTypeInterpretation)
1772{
1773 find interpretation(problem,interpretation);
1774 neg find hasElementInContainment(problem,interpretation);
1775 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1776 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Commit class");
1777 find mayInstanceOfCommit_class(problem,interpretation,newObject);
1778 find mayExist(problem, interpretation, newObject);
1779 neg find mustExist(problem, interpretation, newObject);
1780}
1781pattern createObject_User_class_by_projectMembers_reference_Project(
1782 problem:LogicProblem, interpretation:PartialInterpretation,
1783 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1784 container:DefinedElement)
1785{
1786 find interpretation(problem,interpretation);
1787 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1788 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"User class");
1789 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1790 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"projectMembers reference Project");
1791 find mustInstanceOfProject_class(problem,interpretation,container);
1792 find mayInstanceOfUser_class(problem,interpretation,newObject);
1793 find mayInRelationprojectMembers_reference_Project(problem,interpretation,container,newObject);
1794 find mustExist(problem, interpretation, container);
1795 neg find mustExist(problem, interpretation, newObject);
1796}
1797pattern createObject_User_class(
1798 problem:LogicProblem, interpretation:PartialInterpretation,
1799 typeInterpretation:PartialComplexTypeInterpretation)
1800{
1801 find interpretation(problem,interpretation);
1802 neg find hasElementInContainment(problem,interpretation);
1803 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1804 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"User class");
1805 find mayInstanceOfUser_class(problem,interpretation,newObject);
1806 find mayExist(problem, interpretation, newObject);
1807 neg find mustExist(problem, interpretation, newObject);
1808}
1809pattern createObject_Issue_class_by_issue_reference_Project(
1810 problem:LogicProblem, interpretation:PartialInterpretation,
1811 relationInterpretation:PartialRelationInterpretation, typeInterpretation:PartialComplexTypeInterpretation,
1812 container:DefinedElement)
1813{
1814 find interpretation(problem,interpretation);
1815 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1816 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Issue class");
1817 PartialInterpretation.partialrelationinterpretation(interpretation,relationInterpretation);
1818 PartialRelationInterpretation.interpretationOf.name(relationInterpretation,"issue reference Project");
1819 find mustInstanceOfProject_class(problem,interpretation,container);
1820 find mayInstanceOfIssue_class(problem,interpretation,newObject);
1821 find mayInRelationissue_reference_Project(problem,interpretation,container,newObject);
1822 find mustExist(problem, interpretation, container);
1823 neg find mustExist(problem, interpretation, newObject);
1824}
1825pattern createObject_Issue_class(
1826 problem:LogicProblem, interpretation:PartialInterpretation,
1827 typeInterpretation:PartialComplexTypeInterpretation)
1828{
1829 find interpretation(problem,interpretation);
1830 neg find hasElementInContainment(problem,interpretation);
1831 PartialInterpretation.partialtypeinterpratation(interpretation,typeInterpretation);
1832 PartialComplexTypeInterpretation.interpretationOf.name(typeInterpretation,"Issue class");
1833 find mayInstanceOfIssue_class(problem,interpretation,newObject);
1834 find mayExist(problem, interpretation, newObject);
1835 neg find mustExist(problem, interpretation, newObject);
1836}
1837
1838//////////
1839// 4.2 Type refinement
1840//////////
1841pattern refineTypeTo_IssueEvent_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1842 find interpretation(problem,interpretation);
1843 PartialInterpretation.newElements(interpretation,element);
1844 find mayInstanceOfIssueEvent_class(problem,interpretation,element);
1845 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
1846 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
1847 neg find mustInstanceOfProject_class(problem,interpretation,element);
1848 neg find mustInstanceOfCommit_class(problem,interpretation,element);
1849 neg find mustInstanceOfIssue_class(problem,interpretation,element);
1850 neg find mustInstanceOfUser_class(problem,interpretation,element);
1851}
1852pattern refineTypeTo_PullRequest_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1853 find interpretation(problem,interpretation);
1854 PartialInterpretation.newElements(interpretation,element);
1855 find mayInstanceOfPullRequest_class(problem,interpretation,element);
1856 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
1857 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
1858 neg find mustInstanceOfProject_class(problem,interpretation,element);
1859 neg find mustInstanceOfCommit_class(problem,interpretation,element);
1860 neg find mustInstanceOfIssue_class(problem,interpretation,element);
1861 neg find mustInstanceOfUser_class(problem,interpretation,element);
1862}
1863pattern refineTypeTo_Project_class_UndefinedPart(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1864 find interpretation(problem,interpretation);
1865 PartialInterpretation.newElements(interpretation,element);
1866 find mayInstanceOfProject_class_UndefinedPart(problem,interpretation,element);
1867 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
1868 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
1869 neg find mustInstanceOfProject_class_UndefinedPart(problem,interpretation,element);
1870 neg find mustInstanceOfCommit_class(problem,interpretation,element);
1871 neg find mustInstanceOfIssue_class(problem,interpretation,element);
1872 neg find mustInstanceOfUser_class(problem,interpretation,element);
1873}
1874pattern refineTypeTo_Commit_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1875 find interpretation(problem,interpretation);
1876 PartialInterpretation.newElements(interpretation,element);
1877 find mayInstanceOfCommit_class(problem,interpretation,element);
1878 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
1879 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
1880 neg find mustInstanceOfProject_class(problem,interpretation,element);
1881 neg find mustInstanceOfCommit_class(problem,interpretation,element);
1882 neg find mustInstanceOfUser_class(problem,interpretation,element);
1883 neg find mustInstanceOfIssue_class(problem,interpretation,element);
1884}
1885pattern refineTypeTo_User_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1886 find interpretation(problem,interpretation);
1887 PartialInterpretation.newElements(interpretation,element);
1888 find mayInstanceOfUser_class(problem,interpretation,element);
1889 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
1890 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
1891 neg find mustInstanceOfProject_class(problem,interpretation,element);
1892 neg find mustInstanceOfCommit_class(problem,interpretation,element);
1893 neg find mustInstanceOfIssue_class(problem,interpretation,element);
1894 neg find mustInstanceOfUser_class(problem,interpretation,element);
1895}
1896pattern refineTypeTo_Issue_class(problem:LogicProblem, interpretation:PartialInterpretation, element: DefinedElement) {
1897 find interpretation(problem,interpretation);
1898 PartialInterpretation.newElements(interpretation,element);
1899 find mayInstanceOfIssue_class(problem,interpretation,element);
1900 neg find mustInstanceOfIssueEvent_class(problem,interpretation,element);
1901 neg find mustInstanceOfPullRequest_class(problem,interpretation,element);
1902 neg find mustInstanceOfProject_class(problem,interpretation,element);
1903 neg find mustInstanceOfCommit_class(problem,interpretation,element);
1904 neg find mustInstanceOfIssue_class(problem,interpretation,element);
1905 neg find mustInstanceOfUser_class(problem,interpretation,element);
1906}
1907
1908//////////
1909// 4.3 Relation refinement
1910//////////
1911pattern refineRelation_committer_reference_Commit(
1912 problem:LogicProblem, interpretation:PartialInterpretation,
1913 relationIterpretation:PartialRelationInterpretation,
1914 from: DefinedElement, to: DefinedElement)
1915{
1916 find interpretation(problem,interpretation);
1917 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1918 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"committer reference Commit");
1919 find mustExist(problem, interpretation, from);
1920 find mustExist(problem, interpretation, to);
1921 find mustInstanceOfCommit_class(problem,interpretation,from);
1922 find mustInstanceOfUser_class(problem,interpretation,to);
1923 find mayInRelationcommitter_reference_Commit(problem,interpretation,from,to);
1924 neg find mustInRelationcommitter_reference_Commit(problem,interpretation,from,to);
1925}
1926
1927pattern refineRelation_parents_reference_Commit(
1928 problem:LogicProblem, interpretation:PartialInterpretation,
1929 relationIterpretation:PartialRelationInterpretation,
1930 from: DefinedElement, to: DefinedElement)
1931{
1932 find interpretation(problem,interpretation);
1933 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1934 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"parents reference Commit");
1935 find mustExist(problem, interpretation, from);
1936 find mustExist(problem, interpretation, to);
1937 find mustInstanceOfCommit_class(problem,interpretation,from);
1938 find mustInstanceOfCommit_class(problem,interpretation,to);
1939 find mayInRelationparents_reference_Commit(problem,interpretation,from,to);
1940 neg find mustInRelationparents_reference_Commit(problem,interpretation,from,to);
1941}
1942
1943pattern refineRelation_commit_reference_PullRequest_and_pullrequest_reference_Commit(
1944 problem:LogicProblem, interpretation:PartialInterpretation,
1945 relationIterpretation:PartialRelationInterpretation, oppositeInterpretation:PartialRelationInterpretation,
1946 from: DefinedElement, to: DefinedElement)
1947{
1948 find interpretation(problem,interpretation);
1949 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1950 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"commit reference PullRequest");
1951 PartialInterpretation.partialrelationinterpretation(interpretation,oppositeInterpretation);
1952 PartialRelationInterpretation.interpretationOf.name(oppositeInterpretation,"pullrequest reference Commit");
1953 find mustExist(problem, interpretation, from);
1954 find mustExist(problem, interpretation, to);
1955 find mustInstanceOfPullRequest_class(problem,interpretation,from);
1956 find mustInstanceOfCommit_class(problem,interpretation,to);
1957 find mayInRelationcommit_reference_PullRequest(problem,interpretation,from,to);
1958 neg find mustInRelationcommit_reference_PullRequest(problem,interpretation,from,to);
1959}
1960
1961pattern refineRelation_user_reference_IssueEvent(
1962 problem:LogicProblem, interpretation:PartialInterpretation,
1963 relationIterpretation:PartialRelationInterpretation,
1964 from: DefinedElement, to: DefinedElement)
1965{
1966 find interpretation(problem,interpretation);
1967 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1968 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"user reference IssueEvent");
1969 find mustExist(problem, interpretation, from);
1970 find mustExist(problem, interpretation, to);
1971 find mustInstanceOfIssueEvent_class(problem,interpretation,from);
1972 find mustInstanceOfUser_class(problem,interpretation,to);
1973 find mayInRelationuser_reference_IssueEvent(problem,interpretation,from,to);
1974 neg find mustInRelationuser_reference_IssueEvent(problem,interpretation,from,to);
1975}
1976
1977pattern refineRelation_action_attribute_IssueEvent(
1978 problem:LogicProblem, interpretation:PartialInterpretation,
1979 relationIterpretation:PartialRelationInterpretation,
1980 from: DefinedElement, to: DefinedElement)
1981{
1982 find interpretation(problem,interpretation);
1983 PartialInterpretation.partialrelationinterpretation(interpretation,relationIterpretation);
1984 PartialRelationInterpretation.interpretationOf.name(relationIterpretation,"action attribute IssueEvent");
1985 find mustExist(problem, interpretation, from);
1986 find mustExist(problem, interpretation, to);
1987 find mustInstanceOfIssueEvent_class(problem,interpretation,from);
1988 find mustInstanceOfAction_enum(problem,interpretation,to);
1989 find mayInRelationaction_attribute_IssueEvent(problem,interpretation,from,to);
1990 neg find mustInRelationaction_attribute_IssueEvent(problem,interpretation,from,to);
1991}
1992
1993
1994//////////
1995// 5 Hints
1996//////////
1997
1998//////////
1999// 6 Unit Propagations
2000//////////
2001
2002// Collected propagation preconditions:
2003
2004
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generation.logicproblem b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generation.logicproblem
new file mode 100644
index 00000000..96543fe1
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/generation.logicproblem
@@ -0,0 +1,1114 @@
1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation">
3 <types xsi:type="language_1:TypeDeclaration" name="User class"/>
4 <types xsi:type="language_1:TypeDeclaration" name="Project class" subtypes="//@types.7 //@types.8" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="Commit class"/>
6 <types xsi:type="language_1:TypeDeclaration" name="Issue class"/>
7 <types xsi:type="language_1:TypeDeclaration" name="PullRequest class"/>
8 <types xsi:type="language_1:TypeDeclaration" name="IssueEvent class"/>
9 <types xsi:type="language_1:TypeDefinition" name="Action enum" elements="//@elements.0 //@elements.1 //@elements.2 //@elements.3 //@elements.4 //@elements.5 //@elements.6 //@elements.7 //@elements.8 //@elements.9 //@elements.10"/>
10 <types xsi:type="language_1:TypeDefinition" name="Project class DefinedPart" supertypes="//@types.1" elements="//@elements.11"/>
11 <types xsi:type="language_1:TypeDeclaration" name="Project class UndefinedPart" supertypes="//@types.1"/>
12 <assertions name="lowerMultiplicity committer Commit" annotations="//@annotations.0">
13 <value xsi:type="language_1:Forall">
14 <quantifiedVariables name="src">
15 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
16 </quantifiedVariables>
17 <expression xsi:type="language_1:Exists">
18 <quantifiedVariables name="trg 1">
19 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
20 </quantifiedVariables>
21 <expression xsi:type="language_1:And">
22 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
23 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@quantifiedVariables.0"/>
24 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.0/@value/@expression/@quantifiedVariables.0"/>
25 </operands>
26 </expression>
27 </expression>
28 </value>
29 </assertions>
30 <assertions name="upperMultiplicity committer Commit" annotations="//@annotations.1">
31 <value xsi:type="language_1:Forall">
32 <quantifiedVariables name="src">
33 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
34 </quantifiedVariables>
35 <quantifiedVariables name="trg 1">
36 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
37 </quantifiedVariables>
38 <quantifiedVariables name="trg 2">
39 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
40 </quantifiedVariables>
41 <expression xsi:type="language_1:Impl">
42 <leftOperand xsi:type="language_1:And">
43 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
44 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
45 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
46 </operands>
47 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
48 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.0"/>
49 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
50 </operands>
51 </leftOperand>
52 <rightOperand xsi:type="language_1:Not">
53 <operand xsi:type="language_1:Distinct">
54 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.1"/>
55 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.1/@value/@quantifiedVariables.2"/>
56 </operand>
57 </rightOperand>
58 </expression>
59 </value>
60 </assertions>
61 <assertions name="upperMultiplicity parents Commit" annotations="//@annotations.2">
62 <value xsi:type="language_1:Forall">
63 <quantifiedVariables name="src">
64 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
65 </quantifiedVariables>
66 <quantifiedVariables name="trg 1">
67 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
68 </quantifiedVariables>
69 <quantifiedVariables name="trg 2">
70 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
71 </quantifiedVariables>
72 <quantifiedVariables name="trg 3">
73 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
74 </quantifiedVariables>
75 <expression xsi:type="language_1:Impl">
76 <leftOperand xsi:type="language_1:And">
77 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
78 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
79 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
80 </operands>
81 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
82 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
83 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
84 </operands>
85 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
86 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.0"/>
87 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.3"/>
88 </operands>
89 </leftOperand>
90 <rightOperand xsi:type="language_1:Not">
91 <operand xsi:type="language_1:Distinct">
92 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.1"/>
93 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.2"/>
94 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.2/@value/@quantifiedVariables.3"/>
95 </operand>
96 </rightOperand>
97 </expression>
98 </value>
99 </assertions>
100 <assertions name="upperMultiplicity pullrequest Commit" annotations="//@annotations.3">
101 <value xsi:type="language_1:Forall">
102 <quantifiedVariables name="src">
103 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
104 </quantifiedVariables>
105 <quantifiedVariables name="trg 1">
106 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
107 </quantifiedVariables>
108 <quantifiedVariables name="trg 2">
109 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
110 </quantifiedVariables>
111 <expression xsi:type="language_1:Impl">
112 <leftOperand xsi:type="language_1:And">
113 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
114 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
115 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
116 </operands>
117 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
118 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.0"/>
119 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
120 </operands>
121 </leftOperand>
122 <rightOperand xsi:type="language_1:Not">
123 <operand xsi:type="language_1:Distinct">
124 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.1"/>
125 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.3/@value/@quantifiedVariables.2"/>
126 </operand>
127 </rightOperand>
128 </expression>
129 </value>
130 </assertions>
131 <assertions name="upperMultiplicity pullrequest Issue" annotations="//@annotations.4">
132 <value xsi:type="language_1:Forall">
133 <quantifiedVariables name="src">
134 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
135 </quantifiedVariables>
136 <quantifiedVariables name="trg 1">
137 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
138 </quantifiedVariables>
139 <quantifiedVariables name="trg 2">
140 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
141 </quantifiedVariables>
142 <expression xsi:type="language_1:Impl">
143 <leftOperand xsi:type="language_1:And">
144 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
145 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
146 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
147 </operands>
148 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.6">
149 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.0"/>
150 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
151 </operands>
152 </leftOperand>
153 <rightOperand xsi:type="language_1:Not">
154 <operand xsi:type="language_1:Distinct">
155 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.1"/>
156 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.4/@value/@quantifiedVariables.2"/>
157 </operand>
158 </rightOperand>
159 </expression>
160 </value>
161 </assertions>
162 <assertions name="upperMultiplicity commit PullRequest" annotations="//@annotations.5">
163 <value xsi:type="language_1:Forall">
164 <quantifiedVariables name="src">
165 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
166 </quantifiedVariables>
167 <quantifiedVariables name="trg 1">
168 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
169 </quantifiedVariables>
170 <quantifiedVariables name="trg 2">
171 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
172 </quantifiedVariables>
173 <expression xsi:type="language_1:Impl">
174 <leftOperand xsi:type="language_1:And">
175 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
176 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
177 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
178 </operands>
179 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
180 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.0"/>
181 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
182 </operands>
183 </leftOperand>
184 <rightOperand xsi:type="language_1:Not">
185 <operand xsi:type="language_1:Distinct">
186 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.1"/>
187 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.5/@value/@quantifiedVariables.2"/>
188 </operand>
189 </rightOperand>
190 </expression>
191 </value>
192 </assertions>
193 <assertions name="lowerMultiplicity user IssueEvent" annotations="//@annotations.6">
194 <value xsi:type="language_1:Forall">
195 <quantifiedVariables name="src">
196 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
197 </quantifiedVariables>
198 <expression xsi:type="language_1:Exists">
199 <quantifiedVariables name="trg 1">
200 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
201 </quantifiedVariables>
202 <expression xsi:type="language_1:And">
203 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
204 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@quantifiedVariables.0"/>
205 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.6/@value/@expression/@quantifiedVariables.0"/>
206 </operands>
207 </expression>
208 </expression>
209 </value>
210 </assertions>
211 <assertions name="upperMultiplicity user IssueEvent" annotations="//@annotations.7">
212 <value xsi:type="language_1:Forall">
213 <quantifiedVariables name="src">
214 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
215 </quantifiedVariables>
216 <quantifiedVariables name="trg 1">
217 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
218 </quantifiedVariables>
219 <quantifiedVariables name="trg 2">
220 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
221 </quantifiedVariables>
222 <expression xsi:type="language_1:Impl">
223 <leftOperand xsi:type="language_1:And">
224 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
225 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
226 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
227 </operands>
228 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
229 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.0"/>
230 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
231 </operands>
232 </leftOperand>
233 <rightOperand xsi:type="language_1:Not">
234 <operand xsi:type="language_1:Distinct">
235 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.1"/>
236 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.7/@value/@quantifiedVariables.2"/>
237 </operand>
238 </rightOperand>
239 </expression>
240 </value>
241 </assertions>
242 <assertions name="oppositeReference pullrequest Commit" annotations="//@annotations.8">
243 <value xsi:type="language_1:Forall">
244 <quantifiedVariables name="src">
245 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
246 </quantifiedVariables>
247 <quantifiedVariables name="trg">
248 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
249 </quantifiedVariables>
250 <expression xsi:type="language_1:Iff">
251 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.5">
252 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
253 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
254 </leftOperand>
255 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.8">
256 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.1"/>
257 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.8/@value/@quantifiedVariables.0"/>
258 </rightOperand>
259 </expression>
260 </value>
261 </assertions>
262 <assertions name="lowerMultiplicity action IssueEvent" annotations="//@annotations.9">
263 <value xsi:type="language_1:Forall">
264 <quantifiedVariables name="src">
265 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
266 </quantifiedVariables>
267 <expression xsi:type="language_1:Exists">
268 <quantifiedVariables name="trg 1">
269 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
270 </quantifiedVariables>
271 <expression xsi:type="language_1:And">
272 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
273 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@quantifiedVariables.0"/>
274 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.9/@value/@expression/@quantifiedVariables.0"/>
275 </operands>
276 </expression>
277 </expression>
278 </value>
279 </assertions>
280 <assertions name="upperMultiplicity action IssueEvent" annotations="//@annotations.10">
281 <value xsi:type="language_1:Forall">
282 <quantifiedVariables name="src">
283 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
284 </quantifiedVariables>
285 <quantifiedVariables name="trg 1">
286 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
287 </quantifiedVariables>
288 <quantifiedVariables name="trg 2">
289 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
290 </quantifiedVariables>
291 <expression xsi:type="language_1:Impl">
292 <leftOperand xsi:type="language_1:And">
293 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
294 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
295 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
296 </operands>
297 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
298 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.0"/>
299 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
300 </operands>
301 </leftOperand>
302 <rightOperand xsi:type="language_1:Not">
303 <operand xsi:type="language_1:Distinct">
304 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.1"/>
305 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.10/@value/@quantifiedVariables.2"/>
306 </operand>
307 </rightOperand>
308 </expression>
309 </value>
310 </assertions>
311 <assertions name="errorpattern queries loopInParent" annotations="//@annotations.27">
312 <value xsi:type="language_1:Forall">
313 <quantifiedVariables name="p0">
314 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
315 </quantifiedVariables>
316 <expression xsi:type="language_1:Not">
317 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
318 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.11/@value/@quantifiedVariables.0"/>
319 </operand>
320 </expression>
321 </value>
322 </assertions>
323 <assertions name="errorpattern queries consecutiveClosesWithoutReopen" annotations="//@annotations.28">
324 <value xsi:type="language_1:Forall">
325 <quantifiedVariables name="p0">
326 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
327 </quantifiedVariables>
328 <expression xsi:type="language_1:Not">
329 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19">
330 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.12/@value/@quantifiedVariables.0"/>
331 </operand>
332 </expression>
333 </value>
334 </assertions>
335 <assertions name="errorpattern queries consecutiveReopensWithoutClose" annotations="//@annotations.29">
336 <value xsi:type="language_1:Forall">
337 <quantifiedVariables name="p0">
338 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
339 </quantifiedVariables>
340 <expression xsi:type="language_1:Not">
341 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20">
342 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.13/@value/@quantifiedVariables.0"/>
343 </operand>
344 </expression>
345 </value>
346 </assertions>
347 <assertions name="errorpattern queries consecutiveSubWithoutUnSub" annotations="//@annotations.30">
348 <value xsi:type="language_1:Forall">
349 <quantifiedVariables name="p0">
350 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
351 </quantifiedVariables>
352 <quantifiedVariables name="p1">
353 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
354 </quantifiedVariables>
355 <expression xsi:type="language_1:Not">
356 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21">
357 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.0"/>
358 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.14/@value/@quantifiedVariables.1"/>
359 </operand>
360 </expression>
361 </value>
362 </assertions>
363 <assertions name="errorpattern queries consecutiveUnSubWithoutSub" annotations="//@annotations.31">
364 <value xsi:type="language_1:Forall">
365 <quantifiedVariables name="p0">
366 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
367 </quantifiedVariables>
368 <quantifiedVariables name="p1">
369 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
370 </quantifiedVariables>
371 <expression xsi:type="language_1:Not">
372 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22">
373 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.0"/>
374 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.15/@value/@quantifiedVariables.1"/>
375 </operand>
376 </expression>
377 </value>
378 </assertions>
379 <assertions name="errorpattern queries noCommitter" annotations="//@annotations.32">
380 <value xsi:type="language_1:Forall">
381 <quantifiedVariables name="p0">
382 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
383 </quantifiedVariables>
384 <expression xsi:type="language_1:Not">
385 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25">
386 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.16/@value/@quantifiedVariables.0"/>
387 </operand>
388 </expression>
389 </value>
390 </assertions>
391 <assertions name="errorpattern queries noUser" annotations="//@annotations.33">
392 <value xsi:type="language_1:Forall">
393 <quantifiedVariables name="p0">
394 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
395 </quantifiedVariables>
396 <expression xsi:type="language_1:Not">
397 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26">
398 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.17/@value/@quantifiedVariables.0"/>
399 </operand>
400 </expression>
401 </value>
402 </assertions>
403 <relations xsi:type="language_1:RelationDeclaration" name="issue reference Project">
404 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
405 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
406 </relations>
407 <relations xsi:type="language_1:RelationDeclaration" name="projectMembers reference Project">
408 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
409 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
410 </relations>
411 <relations xsi:type="language_1:RelationDeclaration" name="commits reference Project">
412 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.1"/>
413 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
414 </relations>
415 <relations xsi:type="language_1:RelationDeclaration" name="committer reference Commit">
416 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
417 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
418 </relations>
419 <relations xsi:type="language_1:RelationDeclaration" name="parents reference Commit">
420 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
421 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
422 </relations>
423 <relations xsi:type="language_1:RelationDeclaration" name="pullrequest reference Commit">
424 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
425 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
426 </relations>
427 <relations xsi:type="language_1:RelationDeclaration" name="pullrequest reference Issue">
428 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
429 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
430 </relations>
431 <relations xsi:type="language_1:RelationDeclaration" name="issueevent reference Issue">
432 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
433 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
434 </relations>
435 <relations xsi:type="language_1:RelationDeclaration" name="commit reference PullRequest">
436 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
437 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
438 </relations>
439 <relations xsi:type="language_1:RelationDeclaration" name="user reference IssueEvent">
440 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
441 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
442 </relations>
443 <relations xsi:type="language_1:RelationDeclaration" name="action attribute IssueEvent">
444 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
445 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
446 </relations>
447 <relations xsi:type="language_1:RelationDefinition" name="pattern queries directParent" annotations="//@annotations.11">
448 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
449 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
450 <variables name="parameter a">
451 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
452 </variables>
453 <variables name="parameter b">
454 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
455 </variables>
456 <value xsi:type="language_1:Or">
457 <operands xsi:type="language_1:And">
458 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.4">
459 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.0"/>
460 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.1"/>
461 </operands>
462 <operands xsi:type="language_1:InstanceOf">
463 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11/@variables.1"/>
464 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
465 </operands>
466 </operands>
467 </value>
468 </relations>
469 <relations xsi:type="language_1:RelationDefinition" name="pattern queries loopInParent" annotations="//@annotations.12">
470 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
471 <variables name="parameter a">
472 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
473 </variables>
474 <value xsi:type="language_1:Or">
475 <operands xsi:type="language_1:And">
476 <operands xsi:type="language_1:TransitiveClosure" relation="//@relations.11">
477 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/>
478 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12/@variables.0"/>
479 </operands>
480 </operands>
481 </value>
482 </relations>
483 <relations xsi:type="language_1:RelationDefinition" name="pattern queries checkAction" annotations="//@annotations.13">
484 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
485 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
486 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
487 <variables name="parameter i">
488 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
489 </variables>
490 <variables name="parameter e">
491 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
492 </variables>
493 <variables name="parameter t">
494 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
495 </variables>
496 <value xsi:type="language_1:Or">
497 <operands xsi:type="language_1:And">
498 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
499 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.0"/>
500 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
501 </operands>
502 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
503 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.1"/>
504 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13/@variables.2"/>
505 </operands>
506 </operands>
507 </value>
508 </relations>
509 <relations xsi:type="language_1:RelationDefinition" name="pattern queries checkUserAction" annotations="//@annotations.14">
510 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
511 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
512 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
513 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
514 <variables name="parameter i">
515 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
516 </variables>
517 <variables name="parameter u">
518 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
519 </variables>
520 <variables name="parameter e">
521 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
522 </variables>
523 <variables name="parameter t">
524 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
525 </variables>
526 <value xsi:type="language_1:Or">
527 <operands xsi:type="language_1:And">
528 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
529 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.0"/>
530 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.2"/>
531 </operands>
532 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
533 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.2"/>
534 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.1"/>
535 </operands>
536 <operands xsi:type="language_1:InstanceOf">
537 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.1"/>
538 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
539 </operands>
540 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
541 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.2"/>
542 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14/@variables.3"/>
543 </operands>
544 </operands>
545 </value>
546 </relations>
547 <relations xsi:type="language_1:RelationDefinition" name="pattern queries isReopen" annotations="//@annotations.15">
548 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
549 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
550 <variables name="parameter i">
551 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
552 </variables>
553 <variables name="parameter e">
554 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
555 </variables>
556 <value xsi:type="language_1:Or">
557 <operands xsi:type="language_1:Exists">
558 <quantifiedVariables name="variable a">
559 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
560 </quantifiedVariables>
561 <expression xsi:type="language_1:And">
562 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
563 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
564 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
565 </operands>
566 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
567 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
568 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
569 </operands>
570 <operands xsi:type="language_1:Equals">
571 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
572 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/>
573 </operands>
574 </expression>
575 </operands>
576 </value>
577 </relations>
578 <relations xsi:type="language_1:RelationDefinition" name="pattern queries isClose" annotations="//@annotations.16">
579 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
580 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
581 <variables name="parameter i">
582 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
583 </variables>
584 <variables name="parameter e">
585 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
586 </variables>
587 <value xsi:type="language_1:Or">
588 <operands xsi:type="language_1:Exists">
589 <quantifiedVariables name="variable a">
590 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
591 </quantifiedVariables>
592 <expression xsi:type="language_1:And">
593 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
594 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.0"/>
595 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.1"/>
596 </operands>
597 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
598 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@variables.1"/>
599 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
600 </operands>
601 <operands xsi:type="language_1:Equals">
602 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
603 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
604 </operands>
605 </expression>
606 </operands>
607 </value>
608 </relations>
609 <relations xsi:type="language_1:RelationDefinition" name="pattern queries isUnSubscribe" annotations="//@annotations.17">
610 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
611 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
612 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
613 <variables name="parameter i">
614 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
615 </variables>
616 <variables name="parameter u">
617 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
618 </variables>
619 <variables name="parameter e">
620 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
621 </variables>
622 <value xsi:type="language_1:Or">
623 <operands xsi:type="language_1:Exists">
624 <quantifiedVariables name="variable a">
625 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
626 </quantifiedVariables>
627 <expression xsi:type="language_1:And">
628 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
629 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.0"/>
630 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.2"/>
631 </operands>
632 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
633 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.2"/>
634 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/>
635 </operands>
636 <operands xsi:type="language_1:InstanceOf">
637 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.1"/>
638 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
639 </operands>
640 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
641 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@variables.2"/>
642 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
643 </operands>
644 <operands xsi:type="language_1:Equals">
645 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
646 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/>
647 </operands>
648 </expression>
649 </operands>
650 </value>
651 </relations>
652 <relations xsi:type="language_1:RelationDefinition" name="pattern queries isSubscribe" annotations="//@annotations.18">
653 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
654 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
655 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
656 <variables name="parameter i">
657 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
658 </variables>
659 <variables name="parameter u">
660 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
661 </variables>
662 <variables name="parameter e">
663 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
664 </variables>
665 <value xsi:type="language_1:Or">
666 <operands xsi:type="language_1:Exists">
667 <quantifiedVariables name="variable a">
668 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
669 </quantifiedVariables>
670 <expression xsi:type="language_1:And">
671 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
672 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.0"/>
673 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/>
674 </operands>
675 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
676 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/>
677 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
678 </operands>
679 <operands xsi:type="language_1:InstanceOf">
680 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.1"/>
681 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
682 </operands>
683 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.10">
684 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@variables.2"/>
685 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/>
686 </operands>
687 <operands xsi:type="language_1:Equals">
688 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/>
689 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
690 </operands>
691 </expression>
692 </operands>
693 </value>
694 </relations>
695 <relations xsi:type="language_1:RelationDefinition" name="pattern queries consecutiveClosesWithoutReopen" annotations="//@annotations.19">
696 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
697 <variables name="parameter i">
698 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
699 </variables>
700 <value xsi:type="language_1:Or">
701 <operands xsi:type="language_1:Exists">
702 <quantifiedVariables name="variable a1">
703 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
704 </quantifiedVariables>
705 <quantifiedVariables name="variable a2">
706 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
707 </quantifiedVariables>
708 <quantifiedVariables name="variable virtual0">
709 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
710 </quantifiedVariables>
711 <quantifiedVariables name="variable virtual1">
712 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
713 </quantifiedVariables>
714 <expression xsi:type="language_1:Forall">
715 <quantifiedVariables name="variable 0">
716 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
717 </quantifiedVariables>
718 <expression xsi:type="language_1:And">
719 <operands xsi:type="language_1:Equals">
720 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/>
721 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
722 </operands>
723 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
724 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
725 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/>
726 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/>
727 </operands>
728 <operands xsi:type="language_1:Equals">
729 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.3"/>
730 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.2"/>
731 </operands>
732 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
733 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
734 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/>
735 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.3"/>
736 </operands>
737 <operands xsi:type="language_1:Distinct">
738 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/>
739 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/>
740 </operands>
741 <operands xsi:type="language_1:Not">
742 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
743 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@variables.0"/>
744 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.19/@value/@operands.0/@expression/@quantifiedVariables.0"/>
745 </operand>
746 </operands>
747 </expression>
748 </expression>
749 </operands>
750 </value>
751 </relations>
752 <relations xsi:type="language_1:RelationDefinition" name="pattern queries consecutiveReopensWithoutClose" annotations="//@annotations.20">
753 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
754 <variables name="parameter i">
755 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
756 </variables>
757 <value xsi:type="language_1:Or">
758 <operands xsi:type="language_1:Exists">
759 <quantifiedVariables name="variable a1">
760 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
761 </quantifiedVariables>
762 <quantifiedVariables name="variable a2">
763 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
764 </quantifiedVariables>
765 <quantifiedVariables name="variable virtual0">
766 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
767 </quantifiedVariables>
768 <quantifiedVariables name="variable virtual1">
769 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
770 </quantifiedVariables>
771 <expression xsi:type="language_1:Forall">
772 <quantifiedVariables name="variable 0">
773 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
774 </quantifiedVariables>
775 <expression xsi:type="language_1:And">
776 <operands xsi:type="language_1:Equals">
777 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.2"/>
778 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/>
779 </operands>
780 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
781 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
782 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
783 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.2"/>
784 </operands>
785 <operands xsi:type="language_1:Equals">
786 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.3"/>
787 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.5"/>
788 </operands>
789 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.13">
790 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
791 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.1"/>
792 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.3"/>
793 </operands>
794 <operands xsi:type="language_1:Distinct">
795 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
796 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@quantifiedVariables.1"/>
797 </operands>
798 <operands xsi:type="language_1:Not">
799 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.16">
800 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@variables.0"/>
801 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.20/@value/@operands.0/@expression/@quantifiedVariables.0"/>
802 </operand>
803 </operands>
804 </expression>
805 </expression>
806 </operands>
807 </value>
808 </relations>
809 <relations xsi:type="language_1:RelationDefinition" name="pattern queries consecutiveSubWithoutUnSub" annotations="//@annotations.21">
810 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
811 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
812 <variables name="parameter i">
813 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
814 </variables>
815 <variables name="parameter u">
816 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
817 </variables>
818 <value xsi:type="language_1:Or">
819 <operands xsi:type="language_1:Exists">
820 <quantifiedVariables name="variable a1">
821 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
822 </quantifiedVariables>
823 <quantifiedVariables name="variable a2">
824 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
825 </quantifiedVariables>
826 <quantifiedVariables name="variable virtual0">
827 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
828 </quantifiedVariables>
829 <quantifiedVariables name="variable virtual1">
830 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
831 </quantifiedVariables>
832 <expression xsi:type="language_1:Forall">
833 <quantifiedVariables name="variable 0">
834 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
835 </quantifiedVariables>
836 <expression xsi:type="language_1:And">
837 <operands xsi:type="language_1:Equals">
838 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.2"/>
839 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
840 </operands>
841 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
842 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
843 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
844 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
845 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.2"/>
846 </operands>
847 <operands xsi:type="language_1:Equals">
848 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.3"/>
849 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.0"/>
850 </operands>
851 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
852 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
853 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
854 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.1"/>
855 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.3"/>
856 </operands>
857 <operands xsi:type="language_1:Distinct">
858 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
859 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@quantifiedVariables.1"/>
860 </operands>
861 <operands xsi:type="language_1:Not">
862 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.17">
863 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.0"/>
864 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@variables.1"/>
865 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.21/@value/@operands.0/@expression/@quantifiedVariables.0"/>
866 </operand>
867 </operands>
868 </expression>
869 </expression>
870 </operands>
871 </value>
872 </relations>
873 <relations xsi:type="language_1:RelationDefinition" name="pattern queries consecutiveUnSubWithoutSub" annotations="//@annotations.22">
874 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
875 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
876 <variables name="parameter i">
877 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
878 </variables>
879 <variables name="parameter u">
880 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
881 </variables>
882 <value xsi:type="language_1:Or">
883 <operands xsi:type="language_1:Exists">
884 <quantifiedVariables name="variable a1">
885 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
886 </quantifiedVariables>
887 <quantifiedVariables name="variable a2">
888 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
889 </quantifiedVariables>
890 <quantifiedVariables name="variable virtual0">
891 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
892 </quantifiedVariables>
893 <quantifiedVariables name="variable virtual1">
894 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
895 </quantifiedVariables>
896 <expression xsi:type="language_1:Forall">
897 <quantifiedVariables name="variable 0">
898 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
899 </quantifiedVariables>
900 <expression xsi:type="language_1:And">
901 <operands xsi:type="language_1:Equals">
902 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
903 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/>
904 </operands>
905 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
906 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
907 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
908 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
909 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
910 </operands>
911 <operands xsi:type="language_1:Equals">
912 <leftOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.3"/>
913 <rightOperand xsi:type="language_1:SymbolicValue" symbolicReference="//@elements.6"/>
914 </operands>
915 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.14">
916 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
917 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
918 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
919 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.3"/>
920 </operands>
921 <operands xsi:type="language_1:Distinct">
922 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
923 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
924 </operands>
925 <operands xsi:type="language_1:Not">
926 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.18">
927 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.0"/>
928 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@variables.1"/>
929 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.22/@value/@operands.0/@expression/@quantifiedVariables.0"/>
930 </operand>
931 </operands>
932 </expression>
933 </expression>
934 </operands>
935 </value>
936 </relations>
937 <relations xsi:type="language_1:RelationDefinition" name="pattern queries committer" annotations="//@annotations.23">
938 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
939 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
940 <variables name="parameter c">
941 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
942 </variables>
943 <variables name="parameter u">
944 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
945 </variables>
946 <value xsi:type="language_1:Or">
947 <operands xsi:type="language_1:And">
948 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.3">
949 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.0"/>
950 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.1"/>
951 </operands>
952 <operands xsi:type="language_1:InstanceOf">
953 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23/@variables.1"/>
954 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
955 </operands>
956 </operands>
957 </value>
958 </relations>
959 <relations xsi:type="language_1:RelationDefinition" name="pattern queries eventUser" annotations="//@annotations.24">
960 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
961 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
962 <variables name="parameter e">
963 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
964 </variables>
965 <variables name="parameter u">
966 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
967 </variables>
968 <value xsi:type="language_1:Or">
969 <operands xsi:type="language_1:And">
970 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.9">
971 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.0"/>
972 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/>
973 </operands>
974 <operands xsi:type="language_1:InstanceOf">
975 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24/@variables.1"/>
976 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
977 </operands>
978 </operands>
979 </value>
980 </relations>
981 <relations xsi:type="language_1:RelationDefinition" name="pattern queries noCommitter" annotations="//@annotations.25">
982 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
983 <variables name="parameter c">
984 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
985 </variables>
986 <value xsi:type="language_1:Or">
987 <operands xsi:type="language_1:Forall">
988 <quantifiedVariables name="variable 0">
989 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
990 </quantifiedVariables>
991 <expression xsi:type="language_1:And">
992 <operands xsi:type="language_1:InstanceOf">
993 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
994 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
995 </operands>
996 <operands xsi:type="language_1:Not">
997 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.23">
998 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@variables.0"/>
999 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1000 </operand>
1001 </operands>
1002 </expression>
1003 </operands>
1004 </value>
1005 </relations>
1006 <relations xsi:type="language_1:RelationDefinition" name="pattern queries noUser" annotations="//@annotations.26">
1007 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1008 <variables name="parameter e">
1009 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1010 </variables>
1011 <value xsi:type="language_1:Or">
1012 <operands xsi:type="language_1:Forall">
1013 <quantifiedVariables name="variable 0">
1014 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
1015 </quantifiedVariables>
1016 <expression xsi:type="language_1:And">
1017 <operands xsi:type="language_1:InstanceOf">
1018 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
1019 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
1020 </operands>
1021 <operands xsi:type="language_1:Not">
1022 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.24">
1023 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@variables.0"/>
1024 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
1025 </operand>
1026 </operands>
1027 </expression>
1028 </operands>
1029 </value>
1030 </relations>
1031 <elements name="SUBSCRIBED literal Action" definedInType="//@types.6"/>
1032 <elements name="MENTIONED literal Action" definedInType="//@types.6"/>
1033 <elements name="CLOSED literal Action" definedInType="//@types.6"/>
1034 <elements name="REFERENCED literal Action" definedInType="//@types.6"/>
1035 <elements name="ASSIGNED literal Action" definedInType="//@types.6"/>
1036 <elements name="REOPENED literal Action" definedInType="//@types.6"/>
1037 <elements name="UNSUBSCRIBED literal Action" definedInType="//@types.6"/>
1038 <elements name="MERGED literal Action" definedInType="//@types.6"/>
1039 <elements name="HEAD_REF_CLEANED literal Action" definedInType="//@types.6"/>
1040 <elements name="HEAD_REF_DELETED literal Action" definedInType="//@types.6"/>
1041 <elements name="HEAD_REF_RESTORED literal Action" definedInType="//@types.6"/>
1042 <elements name="o 1" definedInType="//@types.7"/>
1043 <containmentHierarchies typesOrderedInHierarchy="//@types.4 //@types.5 //@types.2 //@types.0 //@types.1 //@types.3 //@types.7 //@types.8" containmentRelations="//@relations.0 //@relations.1 //@relations.2 //@relations.6 //@relations.7"/>
1044 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.0" relation="//@relations.3" lower="1"/>
1045 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.1" relation="//@relations.3" upper="1"/>
1046 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.4" upper="2"/>
1047 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.3" relation="//@relations.5" upper="1"/>
1048 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.4" relation="//@relations.6" upper="1"/>
1049 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.5" relation="//@relations.8" upper="1"/>
1050 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.6" relation="//@relations.9" lower="1"/>
1051 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.7" relation="//@relations.9" upper="1"/>
1052 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.8" inverseA="//@relations.5" inverseB="//@relations.8"/>
1053 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.9" relation="//@relations.10" lower="1"/>
1054 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.10" relation="//@relations.10" upper="1"/>
1055 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.11" patternFullyQualifiedName="queries.directParent"/>
1056 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.12" patternFullyQualifiedName="queries.loopInParent"/>
1057 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.13" patternFullyQualifiedName="queries.checkAction"/>
1058 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.14" patternFullyQualifiedName="queries.checkUserAction"/>
1059 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="queries.isReopen">
1060 <variableTrace targetLogicVariable="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
1061 </annotations>
1062 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.16" patternFullyQualifiedName="queries.isClose">
1063 <variableTrace targetLogicVariable="//@relations.16/@value/@operands.0/@quantifiedVariables.0"/>
1064 </annotations>
1065 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.17" patternFullyQualifiedName="queries.isUnSubscribe">
1066 <variableTrace targetLogicVariable="//@relations.17/@value/@operands.0/@quantifiedVariables.0"/>
1067 </annotations>
1068 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.18" patternFullyQualifiedName="queries.isSubscribe">
1069 <variableTrace targetLogicVariable="//@relations.18/@value/@operands.0/@quantifiedVariables.0"/>
1070 </annotations>
1071 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.19" patternFullyQualifiedName="queries.consecutiveClosesWithoutReopen">
1072 <variableTrace targetLogicVariable="//@relations.19/@value/@operands.0/@quantifiedVariables.0"/>
1073 <variableTrace targetLogicVariable="//@relations.19/@value/@operands.0/@quantifiedVariables.1"/>
1074 <variableTrace targetLogicVariable="//@relations.19/@value/@operands.0/@expression/@quantifiedVariables.0"/>
1075 <variableTrace targetLogicVariable="//@relations.19/@value/@operands.0/@quantifiedVariables.2"/>
1076 <variableTrace targetLogicVariable="//@relations.19/@value/@operands.0/@quantifiedVariables.3"/>
1077 </annotations>
1078 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.20" patternFullyQualifiedName="queries.consecutiveReopensWithoutClose">
1079 <variableTrace targetLogicVariable="//@relations.20/@value/@operands.0/@quantifiedVariables.0"/>
1080 <variableTrace targetLogicVariable="//@relations.20/@value/@operands.0/@quantifiedVariables.1"/>
1081 <variableTrace targetLogicVariable="//@relations.20/@value/@operands.0/@expression/@quantifiedVariables.0"/>
1082 <variableTrace targetLogicVariable="//@relations.20/@value/@operands.0/@quantifiedVariables.2"/>
1083 <variableTrace targetLogicVariable="//@relations.20/@value/@operands.0/@quantifiedVariables.3"/>
1084 </annotations>
1085 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.21" patternFullyQualifiedName="queries.consecutiveSubWithoutUnSub">
1086 <variableTrace targetLogicVariable="//@relations.21/@value/@operands.0/@quantifiedVariables.0"/>
1087 <variableTrace targetLogicVariable="//@relations.21/@value/@operands.0/@quantifiedVariables.1"/>
1088 <variableTrace targetLogicVariable="//@relations.21/@value/@operands.0/@expression/@quantifiedVariables.0"/>
1089 <variableTrace targetLogicVariable="//@relations.21/@value/@operands.0/@quantifiedVariables.2"/>
1090 <variableTrace targetLogicVariable="//@relations.21/@value/@operands.0/@quantifiedVariables.3"/>
1091 </annotations>
1092 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.22" patternFullyQualifiedName="queries.consecutiveUnSubWithoutSub">
1093 <variableTrace targetLogicVariable="//@relations.22/@value/@operands.0/@quantifiedVariables.0"/>
1094 <variableTrace targetLogicVariable="//@relations.22/@value/@operands.0/@quantifiedVariables.1"/>
1095 <variableTrace targetLogicVariable="//@relations.22/@value/@operands.0/@expression/@quantifiedVariables.0"/>
1096 <variableTrace targetLogicVariable="//@relations.22/@value/@operands.0/@quantifiedVariables.2"/>
1097 <variableTrace targetLogicVariable="//@relations.22/@value/@operands.0/@quantifiedVariables.3"/>
1098 </annotations>
1099 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.23" patternFullyQualifiedName="queries.committer"/>
1100 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.24" patternFullyQualifiedName="queries.eventUser"/>
1101 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.25" patternFullyQualifiedName="queries.noCommitter">
1102 <variableTrace targetLogicVariable="//@relations.25/@value/@operands.0/@quantifiedVariables.0"/>
1103 </annotations>
1104 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.26" patternFullyQualifiedName="queries.noUser">
1105 <variableTrace targetLogicVariable="//@relations.26/@value/@operands.0/@quantifiedVariables.0"/>
1106 </annotations>
1107 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.11" query="//@annotations.12"/>
1108 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.12" query="//@annotations.19"/>
1109 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.13" query="//@annotations.20"/>
1110 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.14" query="//@annotations.21"/>
1111 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.15" query="//@annotations.22"/>
1112 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.16" query="//@annotations.25"/>
1113 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.17" query="//@annotations.26"/>
1114</language:LogicProblem>
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/init.partialmodel b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/init.partialmodel
new file mode 100644
index 00000000..8bcbc8f2
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/init.partialmodel
@@ -0,0 +1,98 @@
1<?xml version="1.0" encoding="ASCII"?>
2<partialinterpretation:PartialInterpretation xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:partialinterpretation="http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" minNewElements="29" maxNewElements="29">
3 <problem href="debug/generation.logicproblem#/"/>
4 <partialrelationinterpretation>
5 <interpretationOf href="debug/generation.logicproblem#//@relations.0"/>
6 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.0/@parameters.0"/>
7 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.0/@parameters.1"/>
8 </partialrelationinterpretation>
9 <partialrelationinterpretation>
10 <interpretationOf href="debug/generation.logicproblem#//@relations.1"/>
11 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.1/@parameters.0"/>
12 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.1/@parameters.1"/>
13 </partialrelationinterpretation>
14 <partialrelationinterpretation>
15 <interpretationOf href="debug/generation.logicproblem#//@relations.2"/>
16 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.2/@parameters.0"/>
17 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.2/@parameters.1"/>
18 </partialrelationinterpretation>
19 <partialrelationinterpretation>
20 <interpretationOf href="debug/generation.logicproblem#//@relations.3"/>
21 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.3/@parameters.0"/>
22 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.3/@parameters.1"/>
23 </partialrelationinterpretation>
24 <partialrelationinterpretation>
25 <interpretationOf href="debug/generation.logicproblem#//@relations.4"/>
26 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.4/@parameters.0"/>
27 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.4/@parameters.1"/>
28 </partialrelationinterpretation>
29 <partialrelationinterpretation>
30 <interpretationOf href="debug/generation.logicproblem#//@relations.5"/>
31 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.5/@parameters.0"/>
32 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.5/@parameters.1"/>
33 </partialrelationinterpretation>
34 <partialrelationinterpretation>
35 <interpretationOf href="debug/generation.logicproblem#//@relations.6"/>
36 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.6/@parameters.0"/>
37 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.6/@parameters.1"/>
38 </partialrelationinterpretation>
39 <partialrelationinterpretation>
40 <interpretationOf href="debug/generation.logicproblem#//@relations.7"/>
41 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.7/@parameters.0"/>
42 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.7/@parameters.1"/>
43 </partialrelationinterpretation>
44 <partialrelationinterpretation>
45 <interpretationOf href="debug/generation.logicproblem#//@relations.8"/>
46 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.8/@parameters.0"/>
47 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.8/@parameters.1"/>
48 </partialrelationinterpretation>
49 <partialrelationinterpretation>
50 <interpretationOf href="debug/generation.logicproblem#//@relations.9"/>
51 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.9/@parameters.0"/>
52 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.9/@parameters.1"/>
53 </partialrelationinterpretation>
54 <partialrelationinterpretation>
55 <interpretationOf href="debug/generation.logicproblem#//@relations.10"/>
56 <param1 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.10/@parameters.0"/>
57 <param2 xsi:type="language:ComplexTypeReference" href="debug/generation.logicproblem#//@relations.10/@parameters.1"/>
58 </partialrelationinterpretation>
59 <newElements xsi:type="partialinterpretation:BooleanElement" name="true" valueSet="true" value="true"/>
60 <newElements xsi:type="partialinterpretation:BooleanElement" name="false" valueSet="true"/>
61 <partialtypeinterpratation xsi:type="partialinterpretation:PartialBooleanInterpretation" elements="//@newElements.0 //@newElements.1"/>
62 <partialtypeinterpratation xsi:type="partialinterpretation:PartialIntegerInterpretation" elements="//@openWorldElements.0"/>
63 <partialtypeinterpratation xsi:type="partialinterpretation:PartialRealInterpretation" elements="//@openWorldElements.1"/>
64 <partialtypeinterpratation xsi:type="partialinterpretation:PartialStringInterpretation" elements="//@openWorldElements.2"/>
65 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.0">
66 <interpretationOf href="debug/generation.logicproblem#//@types.0"/>
67 </partialtypeinterpratation>
68 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.1">
69 <elements href="debug/generation.logicproblem#//@elements.11"/>
70 <interpretationOf href="debug/generation.logicproblem#//@types.1"/>
71 </partialtypeinterpratation>
72 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.2">
73 <interpretationOf href="debug/generation.logicproblem#//@types.2"/>
74 </partialtypeinterpratation>
75 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.3">
76 <interpretationOf href="debug/generation.logicproblem#//@types.3"/>
77 </partialtypeinterpratation>
78 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.4">
79 <interpretationOf href="debug/generation.logicproblem#//@types.4"/>
80 </partialtypeinterpratation>
81 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.5">
82 <interpretationOf href="debug/generation.logicproblem#//@types.5"/>
83 </partialtypeinterpratation>
84 <partialtypeinterpratation xsi:type="partialinterpretation:PartialComplexTypeInterpretation" scopes="//@scopes.6" supertypeInterpretation="//@partialtypeinterpratation.5">
85 <interpretationOf href="debug/generation.logicproblem#//@types.8"/>
86 </partialtypeinterpratation>
87 <openWorldElements xsi:type="partialinterpretation:IntegerElement" name="New Integers"/>
88 <openWorldElements xsi:type="partialinterpretation:RealElement" name="New Reals"/>
89 <openWorldElements xsi:type="partialinterpretation:StringElement" name="New Strings"/>
90 <openWorldElements name="New Objects"/>
91 <scopes targetTypeInterpretation="//@partialtypeinterpratation.4"/>
92 <scopes targetTypeInterpretation="//@partialtypeinterpratation.5"/>
93 <scopes targetTypeInterpretation="//@partialtypeinterpratation.6"/>
94 <scopes targetTypeInterpretation="//@partialtypeinterpratation.7"/>
95 <scopes targetTypeInterpretation="//@partialtypeinterpratation.8"/>
96 <scopes targetTypeInterpretation="//@partialtypeinterpratation.9"/>
97 <scopes targetTypeInterpretation="//@partialtypeinterpratation.10"/>
98</partialinterpretation:PartialInterpretation>
diff --git a/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/problem.als b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/problem.als
new file mode 100644
index 00000000..dbdb8ba6
--- /dev/null
+++ b/Metrics/Metrics-Calculation/SocialNetwork_plugin/debug/problem.als
@@ -0,0 +1,151 @@
1one sig util'language {
2 AsDeclaration'pattern'queries'directParent : type'Commit'class->type'Commit'class,
3 util'root : one type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart)))))),
4 util'contains : (type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart))))))) lone->set (type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart)))))))
5}
6abstract sig util'Object {
7}
8sig type'User'class extends util'Object {
9}
10abstract sig type'Project'class extends util'Object {
11 issue'reference'Project : set type'Issue'class,
12 projectMembers'reference'Project : set type'User'class,
13 commits'reference'Project : set type'Commit'class
14}
15sig type'Commit'class extends util'Object {
16 committer'reference'Commit : one type'User'class,
17 parents'reference'Commit : set type'Commit'class,
18 pullrequest'reference'Commit : lone type'PullRequest'class
19}
20sig type'Issue'class extends util'Object {
21 pullrequest'reference'Issue : lone type'PullRequest'class,
22 issueevent'reference'Issue : set type'IssueEvent'class
23}
24sig type'PullRequest'class extends util'Object {
25 commit'reference'PullRequest : lone type'Commit'class
26}
27sig type'IssueEvent'class extends util'Object {
28 user'reference'IssueEvent : one type'User'class,
29 action'attribute'IssueEvent : one type'Action'enum
30}
31abstract sig type'Action'enum extends util'Object {
32}
33abstract sig type'Project'class'DefinedPart extends type'Project'class {
34}
35sig type'Project'class'UndefinedPart extends type'Project'class {
36}
37one sig element'SUBSCRIBED'literal'Action extends type'Action'enum {
38}
39one sig element'MENTIONED'literal'Action extends type'Action'enum {
40}
41one sig element'CLOSED'literal'Action extends type'Action'enum {
42}
43one sig element'REFERENCED'literal'Action extends type'Action'enum {
44}
45one sig element'ASSIGNED'literal'Action extends type'Action'enum {
46}
47one sig element'REOPENED'literal'Action extends type'Action'enum {
48}
49one sig element'UNSUBSCRIBED'literal'Action extends type'Action'enum {
50}
51one sig element'MERGED'literal'Action extends type'Action'enum {
52}
53one sig element'HEAD_REF_CLEANED'literal'Action extends type'Action'enum {
54}
55one sig element'HEAD_REF_DELETED'literal'Action extends type'Action'enum {
56}
57one sig element'HEAD_REF_RESTORED'literal'Action extends type'Action'enum {
58}
59one sig element'o'1 extends type'Project'class'DefinedPart {
60}
61pred pattern'queries'directParent [parameter'a: type'Commit'class, parameter'b: type'Commit'class] {
62 parameter'b in parameter'a.parents'reference'Commit && parameter'b in type'Commit'class
63}
64pred pattern'queries'loopInParent [parameter'a: type'Commit'class] {
65 parameter'a->parameter'a in ^ (util'language.AsDeclaration'pattern'queries'directParent)
66}
67pred pattern'queries'checkAction [parameter'i: type'Issue'class, parameter'e: type'IssueEvent'class, parameter't: type'Action'enum] {
68 parameter'e in parameter'i.issueevent'reference'Issue && parameter't in parameter'e.action'attribute'IssueEvent
69}
70pred pattern'queries'checkUserAction [parameter'i: type'Issue'class, parameter'u: type'User'class, parameter'e: type'IssueEvent'class, parameter't: type'Action'enum] {
71 parameter'e in parameter'i.issueevent'reference'Issue && (parameter'u in parameter'e.user'reference'IssueEvent && (parameter'u in type'User'class && parameter't in parameter'e.action'attribute'IssueEvent))
72}
73pred pattern'queries'isReopen [parameter'i: type'Issue'class, parameter'e: type'IssueEvent'class] {
74 some variable'a: type'Action'enum { parameter'e in parameter'i.issueevent'reference'Issue && (variable'a in parameter'e.action'attribute'IssueEvent && variable'a = element'REOPENED'literal'Action) }
75}
76pred pattern'queries'isClose [parameter'i: type'Issue'class, parameter'e: type'IssueEvent'class] {
77 some variable'a: type'Action'enum { parameter'e in parameter'i.issueevent'reference'Issue && (variable'a in parameter'e.action'attribute'IssueEvent && variable'a = element'CLOSED'literal'Action) }
78}
79pred pattern'queries'isUnSubscribe [parameter'i: type'Issue'class, parameter'u: type'User'class, parameter'e: type'IssueEvent'class] {
80 some variable'a: type'Action'enum { parameter'e in parameter'i.issueevent'reference'Issue && (parameter'u in parameter'e.user'reference'IssueEvent && (parameter'u in type'User'class && (variable'a in parameter'e.action'attribute'IssueEvent && variable'a = element'UNSUBSCRIBED'literal'Action))) }
81}
82pred pattern'queries'isSubscribe [parameter'i: type'Issue'class, parameter'u: type'User'class, parameter'e: type'IssueEvent'class] {
83 some variable'a: type'Action'enum { parameter'e in parameter'i.issueevent'reference'Issue && (parameter'u in parameter'e.user'reference'IssueEvent && (parameter'u in type'User'class && (variable'a in parameter'e.action'attribute'IssueEvent && variable'a = element'SUBSCRIBED'literal'Action))) }
84}
85pred pattern'queries'consecutiveClosesWithoutReopen [parameter'i: type'Issue'class] {
86 some variable'a1: type'IssueEvent'class, variable'a2: type'IssueEvent'class, variable'virtual0: type'Action'enum, variable'virtual1: type'Action'enum { all variable'0: type'IssueEvent'class { variable'virtual0 = element'CLOSED'literal'Action && (pattern'queries'checkAction [ parameter'i , variable'a1 , variable'virtual0 ] && (variable'virtual1 = element'CLOSED'literal'Action && (pattern'queries'checkAction [ parameter'i , variable'a2 , variable'virtual1 ] && (variable'a1 != variable'a2 && not (pattern'queries'isReopen [ parameter'i , variable'0 ]))))) } }
87}
88pred pattern'queries'consecutiveReopensWithoutClose [parameter'i: type'Issue'class] {
89 some variable'a1: type'IssueEvent'class, variable'a2: type'IssueEvent'class, variable'virtual0: type'Action'enum, variable'virtual1: type'Action'enum { all variable'0: type'IssueEvent'class { variable'virtual0 = element'REOPENED'literal'Action && (pattern'queries'checkAction [ parameter'i , variable'a1 , variable'virtual0 ] && (variable'virtual1 = element'REOPENED'literal'Action && (pattern'queries'checkAction [ parameter'i , variable'a2 , variable'virtual1 ] && (variable'a1 != variable'a2 && not (pattern'queries'isClose [ parameter'i , variable'0 ]))))) } }
90}
91pred pattern'queries'consecutiveSubWithoutUnSub [parameter'i: type'Issue'class, parameter'u: type'User'class] {
92 some variable'a1: type'IssueEvent'class, variable'a2: type'IssueEvent'class, variable'virtual0: type'Action'enum, variable'virtual1: type'Action'enum { all variable'0: type'IssueEvent'class { variable'virtual0 = element'SUBSCRIBED'literal'Action && (pattern'queries'checkUserAction [ parameter'i , parameter'u , variable'a1 , variable'virtual0 ] && (variable'virtual1 = element'SUBSCRIBED'literal'Action && (pattern'queries'checkUserAction [ parameter'i , parameter'u , variable'a2 , variable'virtual1 ] && (variable'a1 != variable'a2 && not (pattern'queries'isUnSubscribe [ parameter'i , parameter'u , variable'0 ]))))) } }
93}
94pred pattern'queries'consecutiveUnSubWithoutSub [parameter'i: type'Issue'class, parameter'u: type'User'class] {
95 some variable'a1: type'IssueEvent'class, variable'a2: type'IssueEvent'class, variable'virtual0: type'Action'enum, variable'virtual1: type'Action'enum { all variable'0: type'IssueEvent'class { variable'virtual0 = element'UNSUBSCRIBED'literal'Action && (pattern'queries'checkUserAction [ parameter'i , parameter'u , variable'a1 , variable'virtual0 ] && (variable'virtual1 = element'UNSUBSCRIBED'literal'Action && (pattern'queries'checkUserAction [ parameter'i , parameter'u , variable'a2 , variable'virtual1 ] && (variable'a1 != variable'a2 && not (pattern'queries'isSubscribe [ parameter'i , parameter'u , variable'0 ]))))) } }
96}
97pred pattern'queries'committer [parameter'c: type'Commit'class, parameter'u: type'User'class] {
98 parameter'u in parameter'c.committer'reference'Commit && parameter'u in type'User'class
99}
100pred pattern'queries'eventUser [parameter'e: type'IssueEvent'class, parameter'u: type'User'class] {
101 parameter'u in parameter'e.user'reference'IssueEvent && parameter'u in type'User'class
102}
103pred pattern'queries'noCommitter [parameter'c: type'Commit'class] {
104 all variable'0: type'User'class { parameter'c in type'Commit'class && not (pattern'queries'committer [ parameter'c , variable'0 ]) }
105}
106pred pattern'queries'noUser [parameter'e: type'IssueEvent'class] {
107 all variable'0: type'User'class { parameter'e in type'IssueEvent'class && not (pattern'queries'eventUser [ parameter'e , variable'0 ]) }
108}
109fact EqualsAsDeclaration'pattern'queries'directParent {
110 all a: type'Commit'class, b: type'Commit'class { pattern'queries'directParent [ a , b ] <=> a->b in util'language.AsDeclaration'pattern'queries'directParent }
111}
112fact util'containmentDefinition {
113 util'language.util'contains = issue'reference'Project + (projectMembers'reference'Project + (commits'reference'Project + (pullrequest'reference'Issue + issueevent'reference'Issue)))
114}
115fact util'noParentForRoot {
116 no parent: type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart)))))) { parent->(util'language.util'root) in util'language.util'contains }
117}
118fact util'atLeastOneParent {
119 all child: type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart)))))) { child = util'language.util'root or (some parent: type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart)))))) { parent->child in util'language.util'contains }) }
120}
121fact util'noCircularContainment {
122 no circle: type'PullRequest'class + (type'IssueEvent'class + (type'Commit'class + (type'User'class + (type'Project'class + (type'Issue'class + (type'Project'class'DefinedPart + type'Project'class'UndefinedPart)))))) { circle->circle in ^ (util'language.util'contains) }
123}
124fact upperMultiplicity'parents'Commit {
125 all src: type'Commit'class, trg'1: type'Commit'class, trg'2: type'Commit'class, trg'3: type'Commit'class { trg'1 in src.parents'reference'Commit && (trg'2 in src.parents'reference'Commit && trg'3 in src.parents'reference'Commit) => not (trg'1 != trg'2 && (trg'1 != trg'3 && trg'2 != trg'3)) }
126}
127fact oppositeReference'pullrequest'Commit {
128 pullrequest'reference'Commit = ~ commit'reference'PullRequest
129}
130fact errorpattern'queries'loopInParent {
131 all p0: type'Commit'class { not (pattern'queries'loopInParent [ p0 ]) }
132}
133fact errorpattern'queries'consecutiveClosesWithoutReopen {
134 all p0: type'Issue'class { not (pattern'queries'consecutiveClosesWithoutReopen [ p0 ]) }
135}
136fact errorpattern'queries'consecutiveReopensWithoutClose {
137 all p0: type'Issue'class { not (pattern'queries'consecutiveReopensWithoutClose [ p0 ]) }
138}
139fact errorpattern'queries'consecutiveSubWithoutUnSub {
140 all p0: type'Issue'class, p1: type'User'class { not (pattern'queries'consecutiveSubWithoutUnSub [ p0 , p1 ]) }
141}
142fact errorpattern'queries'consecutiveUnSubWithoutSub {
143 all p0: type'Issue'class, p1: type'User'class { not (pattern'queries'consecutiveUnSubWithoutSub [ p0 , p1 ]) }
144}
145fact errorpattern'queries'noCommitter {
146 all p0: type'Commit'class { not (pattern'queries'noCommitter [ p0 ]) }
147}
148fact errorpattern'queries'noUser {
149 all p0: type'IssueEvent'class { not (pattern'queries'noUser [ p0 ]) }
150}
151run { } for exactly 41 util'Object , 1 Int , exactly 0 String \ No newline at end of file