diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/SocialNetwork_plugin/debug')
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 @@ | |||
1 | Error 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) | 1 | Error 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 @@ | |||
1 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/viatrasolver/partialinterpretationlanguage" | ||
2 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" | ||
3 | import epackage "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
4 | |||
5 | ////////// | ||
6 | // 0. Util | ||
7 | ////////// | ||
8 | private pattern interpretation(problem:LogicProblem, interpretation:PartialInterpretation) { | ||
9 | PartialInterpretation.problem(interpretation,problem); | ||
10 | } | ||
11 | |||
12 | ///////////////////////// | ||
13 | // 0.1 Existence | ||
14 | ///////////////////////// | ||
15 | /** [[exist(element)]]=1 */ | ||
16 | private pattern mustExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
17 | find interpretation(problem,interpretation); | ||
18 | LogicProblem.elements(problem,element); | ||
19 | } or { | ||
20 | find interpretation(problem,interpretation); | ||
21 | PartialInterpretation.newElements(interpretation,element); | ||
22 | } | ||
23 | |||
24 | /** [[exist(element)]]>=1/2 */ | ||
25 | private pattern mayExist(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
26 | find mustExist(problem,interpretation,element); | ||
27 | } or { | ||
28 | find interpretation(problem,interpretation); | ||
29 | neg find elementCloseWorld(element); | ||
30 | PartialInterpretation.openWorldElements(interpretation,element); | ||
31 | } | ||
32 | |||
33 | private pattern elementCloseWorld(element:DefinedElement) { | ||
34 | PartialInterpretation.openWorldElements(i,element); | ||
35 | PartialInterpretation.maxNewElements(i,0); | ||
36 | } or { | ||
37 | Scope.targetTypeInterpretation(scope,interpretation); | ||
38 | PartialTypeInterpratation.elements(interpretation,element); | ||
39 | Scope.maxNewElements(scope,0); | ||
40 | } | ||
41 | |||
42 | //////////////////////// | ||
43 | // 0.2 Equivalence | ||
44 | //////////////////////// | ||
45 | pattern mayEquivalent(problem:LogicProblem, interpretation:PartialInterpretation, a: DefinedElement, b: DefinedElement) | ||
46 | // For non-primitive type. Boolean types always must equivalent or cannot equivalent | ||
47 | { | ||
48 | find mayExist(problem,interpretation,a); | ||
49 | find mayExist(problem,interpretation,b); | ||
50 | a == b; | ||
51 | } | ||
52 | |||
53 | pattern 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 | |||
68 | private 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 | |||
75 | private 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 | |||
85 | private 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 | */ | ||
113 | private pattern mustInstanceOfUser_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
114 | Type.name(type,"User class"); | ||
115 | find directInstanceOf(problem,interpretation,element,type); | ||
116 | } | ||
117 | private 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 | */ | ||
129 | private 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 | */ | ||
155 | private pattern mustInstanceOfProject_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
156 | Type.name(type,"Project class"); | ||
157 | find directInstanceOf(problem,interpretation,element,type); | ||
158 | } | ||
159 | private 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 | */ | ||
171 | private 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 | */ | ||
199 | private pattern mustInstanceOfCommit_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
200 | Type.name(type,"Commit class"); | ||
201 | find directInstanceOf(problem,interpretation,element,type); | ||
202 | } | ||
203 | private 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 | */ | ||
215 | private 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 | */ | ||
241 | private pattern mustInstanceOfIssue_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
242 | Type.name(type,"Issue class"); | ||
243 | find directInstanceOf(problem,interpretation,element,type); | ||
244 | } | ||
245 | private 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 | */ | ||
257 | private 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 | */ | ||
283 | private pattern mustInstanceOfPullRequest_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
284 | Type.name(type,"PullRequest class"); | ||
285 | find directInstanceOf(problem,interpretation,element,type); | ||
286 | } | ||
287 | private 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 | */ | ||
299 | private 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 | */ | ||
325 | private pattern mustInstanceOfIssueEvent_class(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
326 | Type.name(type,"IssueEvent class"); | ||
327 | find directInstanceOf(problem,interpretation,element,type); | ||
328 | } | ||
329 | private 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 | */ | ||
341 | private 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 | */ | ||
367 | private pattern mustInstanceOfAction_enum(problem:LogicProblem, interpretation:PartialInterpretation, element:DefinedElement) { | ||
368 | Type.name(type,"Action enum"); | ||
369 | find directInstanceOf(problem,interpretation,element,type); | ||
370 | } | ||
371 | private 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 | */ | ||
383 | private 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 | */ | ||
388 | private 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 | } | ||
392 | private 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 | */ | ||
404 | private 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 | */ | ||
409 | private 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 | } | ||
413 | private 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 | */ | ||
425 | private 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 | */ | ||
455 | private 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 | */ | ||
469 | private 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 | */ | ||
491 | private 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 | */ | ||
505 | private 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 | */ | ||
527 | private 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 | */ | ||
541 | private 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 | */ | ||
563 | private 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 | */ | ||
577 | private 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 | */ | ||
598 | private 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 | */ | ||
612 | private 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 | */ | ||
633 | private 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 | */ | ||
647 | private 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 | */ | ||
672 | private 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 | */ | ||
686 | private 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 | */ | ||
712 | private 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 | */ | ||
726 | private 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 | */ | ||
748 | private 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 | */ | ||
762 | private 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 | */ | ||
787 | private 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 | */ | ||
801 | private 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 | */ | ||
822 | private 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 | */ | ||
836 | private 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 | ||
859 | private 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 | } | ||
869 | private 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 | } | ||
879 | private 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 | } | ||
889 | private pattern twoParam_mustInRelation_pattern_queries_directParent(var_a, var_b) { | ||
890 | find mustInRelation_pattern_queries_directParent(_,_,var_a, var_b); | ||
891 | } | ||
892 | private pattern twoParam_mayInRelation_pattern_queries_directParent(var_a, var_b) { | ||
893 | find mayInRelation_pattern_queries_directParent(_,_,var_a, var_b); | ||
894 | } | ||
895 | private 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 | ||
899 | private 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 | } | ||
907 | private 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 | } | ||
915 | private 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 | ||
924 | private 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 | } | ||
935 | private 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 | } | ||
946 | private 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 | ||
958 | private 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 | } | ||
972 | private 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 | } | ||
986 | private 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 | ||
1001 | private 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 | } | ||
1012 | private 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 | } | ||
1023 | private 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 | ||
1035 | private 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 | } | ||
1046 | private 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 | } | ||
1057 | private 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 | ||
1069 | private 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 | } | ||
1083 | private 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 | } | ||
1097 | private 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 | ||
1112 | private 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 | } | ||
1126 | private 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 | } | ||
1140 | private 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 | ||
1155 | private 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 | } | ||
1165 | private 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 | } | ||
1175 | private 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 | ||
1186 | private 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 | } | ||
1196 | private 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 | } | ||
1206 | private 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 | ||
1217 | private 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 | } | ||
1230 | private 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 | } | ||
1243 | private 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 | ||
1257 | private 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 | } | ||
1270 | private 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 | } | ||
1283 | private 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 | ||
1297 | private 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 | } | ||
1311 | private 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 | } | ||
1325 | private 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 | ||
1340 | private 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 | } | ||
1354 | private 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 | } | ||
1368 | private 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 | ||
1383 | private 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 | } | ||
1393 | private 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 | } | ||
1403 | private 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 | ||
1414 | private 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 | } | ||
1424 | private 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 | } | ||
1434 | private 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 | ||
1445 | private 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 | } | ||
1454 | private 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 | } | ||
1463 | private 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 | ||
1473 | private 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 | } | ||
1482 | private 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 | } | ||
1491 | private 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 | ////////// | ||
1504 | private pattern mustContains2(source: DefinedElement, target: DefinedElement) { | ||
1505 | find mustContains4(_,_,source,target); | ||
1506 | } | ||
1507 | |||
1508 | private 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 | |||
1520 | private 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 | ////////// | ||
1529 | pattern invalidatedBy_pattern_queries_loopInParent(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1530 | var_a) | ||
1531 | { | ||
1532 | find mustInRelation_pattern_queries_loopInParent(problem,interpretation,var_a); | ||
1533 | } | ||
1534 | pattern invalidatedBy_pattern_queries_mergedIssueWithoutPr(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1535 | var_i) | ||
1536 | { | ||
1537 | find mustInRelation_pattern_queries_mergedIssueWithoutPr(problem,interpretation,var_i); | ||
1538 | } | ||
1539 | pattern invalidatedBy_pattern_queries_consecutiveClosesWithoutReopen(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1540 | var_i) | ||
1541 | { | ||
1542 | find mustInRelation_pattern_queries_consecutiveClosesWithoutReopen(problem,interpretation,var_i); | ||
1543 | } | ||
1544 | pattern invalidatedBy_pattern_queries_consecutiveReopensWithoutClose(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1545 | var_i) | ||
1546 | { | ||
1547 | find mustInRelation_pattern_queries_consecutiveReopensWithoutClose(problem,interpretation,var_i); | ||
1548 | } | ||
1549 | pattern 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 | } | ||
1554 | pattern 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 | } | ||
1559 | pattern invalidatedBy_pattern_queries_noCommitter(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1560 | var_c) | ||
1561 | { | ||
1562 | find mustInRelation_pattern_queries_noCommitter(problem,interpretation,var_c); | ||
1563 | } | ||
1564 | pattern 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 | |||
1581 | private 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 | |||
1593 | private 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 | ////////// | ||
1605 | pattern unfinishedBy_pattern_queries_loopInParent(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1606 | var_a) | ||
1607 | { | ||
1608 | find currentInRelation_pattern_queries_loopInParent(problem,interpretation,var_a); | ||
1609 | } | ||
1610 | pattern unfinishedBy_pattern_queries_mergedIssueWithoutPr(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1611 | var_i) | ||
1612 | { | ||
1613 | find currentInRelation_pattern_queries_mergedIssueWithoutPr(problem,interpretation,var_i); | ||
1614 | } | ||
1615 | pattern unfinishedBy_pattern_queries_consecutiveClosesWithoutReopen(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1616 | var_i) | ||
1617 | { | ||
1618 | find currentInRelation_pattern_queries_consecutiveClosesWithoutReopen(problem,interpretation,var_i); | ||
1619 | } | ||
1620 | pattern unfinishedBy_pattern_queries_consecutiveReopensWithoutClose(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1621 | var_i) | ||
1622 | { | ||
1623 | find currentInRelation_pattern_queries_consecutiveReopensWithoutClose(problem,interpretation,var_i); | ||
1624 | } | ||
1625 | pattern 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 | } | ||
1630 | pattern 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 | } | ||
1635 | pattern unfinishedBy_pattern_queries_noCommitter(problem:LogicProblem, interpretation:PartialInterpretation, | ||
1636 | var_c) | ||
1637 | { | ||
1638 | find currentInRelation_pattern_queries_noCommitter(problem,interpretation,var_c); | ||
1639 | } | ||
1640 | pattern 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 | ////////// | ||
1651 | pattern 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 | } | ||
1685 | pattern 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 | } | ||
1701 | pattern 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 | } | ||
1713 | pattern 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 | } | ||
1729 | pattern 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 | } | ||
1741 | pattern 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 | } | ||
1753 | pattern 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 | } | ||
1769 | pattern 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 | } | ||
1781 | pattern 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 | } | ||
1797 | pattern 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 | } | ||
1809 | pattern 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 | } | ||
1825 | pattern 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 | ////////// | ||
1841 | pattern 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 | } | ||
1852 | pattern 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 | } | ||
1863 | pattern 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 | } | ||
1874 | pattern 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 | } | ||
1885 | pattern 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 | } | ||
1896 | pattern 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 | ////////// | ||
1911 | pattern 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 | |||
1927 | pattern 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 | |||
1943 | pattern 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 | |||
1961 | pattern 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 | |||
1977 | pattern 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 @@ | |||
1 | one 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 | } | ||
6 | abstract sig util'Object { | ||
7 | } | ||
8 | sig type'User'class extends util'Object { | ||
9 | } | ||
10 | abstract 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 | } | ||
15 | sig 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 | } | ||
20 | sig type'Issue'class extends util'Object { | ||
21 | pullrequest'reference'Issue : lone type'PullRequest'class, | ||
22 | issueevent'reference'Issue : set type'IssueEvent'class | ||
23 | } | ||
24 | sig type'PullRequest'class extends util'Object { | ||
25 | commit'reference'PullRequest : lone type'Commit'class | ||
26 | } | ||
27 | sig type'IssueEvent'class extends util'Object { | ||
28 | user'reference'IssueEvent : one type'User'class, | ||
29 | action'attribute'IssueEvent : one type'Action'enum | ||
30 | } | ||
31 | abstract sig type'Action'enum extends util'Object { | ||
32 | } | ||
33 | abstract sig type'Project'class'DefinedPart extends type'Project'class { | ||
34 | } | ||
35 | sig type'Project'class'UndefinedPart extends type'Project'class { | ||
36 | } | ||
37 | one sig element'SUBSCRIBED'literal'Action extends type'Action'enum { | ||
38 | } | ||
39 | one sig element'MENTIONED'literal'Action extends type'Action'enum { | ||
40 | } | ||
41 | one sig element'CLOSED'literal'Action extends type'Action'enum { | ||
42 | } | ||
43 | one sig element'REFERENCED'literal'Action extends type'Action'enum { | ||
44 | } | ||
45 | one sig element'ASSIGNED'literal'Action extends type'Action'enum { | ||
46 | } | ||
47 | one sig element'REOPENED'literal'Action extends type'Action'enum { | ||
48 | } | ||
49 | one sig element'UNSUBSCRIBED'literal'Action extends type'Action'enum { | ||
50 | } | ||
51 | one sig element'MERGED'literal'Action extends type'Action'enum { | ||
52 | } | ||
53 | one sig element'HEAD_REF_CLEANED'literal'Action extends type'Action'enum { | ||
54 | } | ||
55 | one sig element'HEAD_REF_DELETED'literal'Action extends type'Action'enum { | ||
56 | } | ||
57 | one sig element'HEAD_REF_RESTORED'literal'Action extends type'Action'enum { | ||
58 | } | ||
59 | one sig element'o'1 extends type'Project'class'DefinedPart { | ||
60 | } | ||
61 | pred 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 | } | ||
64 | pred pattern'queries'loopInParent [parameter'a: type'Commit'class] { | ||
65 | parameter'a->parameter'a in ^ (util'language.AsDeclaration'pattern'queries'directParent) | ||
66 | } | ||
67 | pred 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 | } | ||
70 | pred 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 | } | ||
73 | pred 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 | } | ||
76 | pred 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 | } | ||
79 | pred 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 | } | ||
82 | pred 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 | } | ||
85 | pred 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 | } | ||
88 | pred 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 | } | ||
91 | pred 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 | } | ||
94 | pred 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 | } | ||
97 | pred 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 | } | ||
100 | pred 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 | } | ||
103 | pred 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 | } | ||
106 | pred 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 | } | ||
109 | fact 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 | } | ||
112 | fact util'containmentDefinition { | ||
113 | util'language.util'contains = issue'reference'Project + (projectMembers'reference'Project + (commits'reference'Project + (pullrequest'reference'Issue + issueevent'reference'Issue))) | ||
114 | } | ||
115 | fact 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 | } | ||
118 | fact 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 | } | ||
121 | fact 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 | } | ||
124 | fact 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 | } | ||
127 | fact oppositeReference'pullrequest'Commit { | ||
128 | pullrequest'reference'Commit = ~ commit'reference'PullRequest | ||
129 | } | ||
130 | fact errorpattern'queries'loopInParent { | ||
131 | all p0: type'Commit'class { not (pattern'queries'loopInParent [ p0 ]) } | ||
132 | } | ||
133 | fact errorpattern'queries'consecutiveClosesWithoutReopen { | ||
134 | all p0: type'Issue'class { not (pattern'queries'consecutiveClosesWithoutReopen [ p0 ]) } | ||
135 | } | ||
136 | fact errorpattern'queries'consecutiveReopensWithoutClose { | ||
137 | all p0: type'Issue'class { not (pattern'queries'consecutiveReopensWithoutClose [ p0 ]) } | ||
138 | } | ||
139 | fact errorpattern'queries'consecutiveSubWithoutUnSub { | ||
140 | all p0: type'Issue'class, p1: type'User'class { not (pattern'queries'consecutiveSubWithoutUnSub [ p0 , p1 ]) } | ||
141 | } | ||
142 | fact errorpattern'queries'consecutiveUnSubWithoutSub { | ||
143 | all p0: type'Issue'class, p1: type'User'class { not (pattern'queries'consecutiveUnSubWithoutSub [ p0 , p1 ]) } | ||
144 | } | ||
145 | fact errorpattern'queries'noCommitter { | ||
146 | all p0: type'Commit'class { not (pattern'queries'noCommitter [ p0 ]) } | ||
147 | } | ||
148 | fact errorpattern'queries'noUser { | ||
149 | all p0: type'IssueEvent'class { not (pattern'queries'noUser [ p0 ]) } | ||
150 | } | ||
151 | run { } for exactly 41 util'Object , 1 Int , exactly 0 String \ No newline at end of file | ||