diff options
author | OszkarSemerath <oszka@152.66.252.189> | 2017-06-10 19:05:05 +0200 |
---|---|---|
committer | OszkarSemerath <oszka@152.66.252.189> | 2017-06-10 19:05:05 +0200 |
commit | 60f01f46ba232ed6416054f0a6115cb2a9b70b4e (patch) | |
tree | 5edf8aeb07abc51f3fec63bbd15c926e1de09552 /Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu | |
parent | Initial commit, migrating from SVN (diff) | |
download | VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.gz VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.zst VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.zip |
Migrating Additional projects
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu')
-rw-r--r-- | Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql new file mode 100644 index 00000000..a4c3125d --- /dev/null +++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql | |||
@@ -0,0 +1,196 @@ | |||
1 | package hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu | ||
2 | |||
3 | import epackage "hu.bme.mit.inf.yakindumm" | ||
4 | |||
5 | pattern entryInRegion(r1 : Region, e1 : Entry) { | ||
6 | Region.vertices(r1, e1); | ||
7 | } | ||
8 | |||
9 | @Constraint(severity="error", message="error", key = {r1}) | ||
10 | pattern noEntryInRegion(r1 : Region) { | ||
11 | neg find entryInRegion(r1, _); | ||
12 | } | ||
13 | |||
14 | @Constraint(severity="error", message="error", key = {r}) | ||
15 | pattern multipleEntryInRegion(r : Region) { | ||
16 | find entryInRegion(r, e1); | ||
17 | find entryInRegion(r, e2); | ||
18 | e1 != e2; | ||
19 | } | ||
20 | |||
21 | pattern transition(t : Transition, src : Vertex, trg : Vertex) { | ||
22 | Transition.source(t, src); | ||
23 | Transition.target(t, trg); | ||
24 | } | ||
25 | |||
26 | @Constraint(severity="error", message="error", key = {e}) | ||
27 | pattern incomingToEntry(t : Transition, e : Entry) { | ||
28 | find transition(t, _, e); | ||
29 | } | ||
30 | |||
31 | @Constraint(severity="error", message="error", key = {e}) | ||
32 | pattern noOutgoingTransitionFromEntry(e : Entry) { | ||
33 | neg find transition(_, e, _); | ||
34 | } | ||
35 | |||
36 | @Constraint(severity="error", message="error", key = {e}) | ||
37 | pattern multipleTransitionFromEntry(e : Entry, t1 : Transition, t2: Transition) { | ||
38 | Entry.outgoingTransitions(e,t1); | ||
39 | Entry.outgoingTransitions(e,t2); | ||
40 | t1!=t2; | ||
41 | } | ||
42 | |||
43 | @Constraint(severity="error", message="error", key = {s}) | ||
44 | pattern hasNoOutgoing(s : Synchronization) { | ||
45 | neg find transition(_, s, _); | ||
46 | } | ||
47 | |||
48 | @Constraint(severity="error", message="error", key = {s}) | ||
49 | pattern hasNoIncoming(s : Synchronization) { | ||
50 | neg find transition(_, _, s); | ||
51 | } | ||
52 | |||
53 | pattern StateInRegion(region: Region, state: State) { | ||
54 | Region.vertices(region,state); | ||
55 | } | ||
56 | |||
57 | @Constraint(severity="error", message="error", key = {s}) | ||
58 | pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) { | ||
59 | find transition(t1, v1, s); | ||
60 | find transition(t2, v2, s); | ||
61 | t1!=t2; | ||
62 | Region.vertices(r, v1); | ||
63 | Region.vertices(r, v2); | ||
64 | } or { | ||
65 | find transition(t1, s, v1); | ||
66 | find transition(t2, s, v2); | ||
67 | t1!=t2; | ||
68 | Region.vertices(r, v1); | ||
69 | Region.vertices(r, v2); | ||
70 | } | ||
71 | |||
72 | @Constraint(severity="error", message="error", key = {region}) | ||
73 | pattern noStateInRegion(region: Region) { | ||
74 | neg find StateInRegion(region,_); | ||
75 | } | ||
76 | |||
77 | @Constraint(severity="error", message="error", key = {s}) | ||
78 | pattern notSynchronizingStates(s : Synchronization) { | ||
79 | neg find hasMultipleOutgoingTrainsition(s); | ||
80 | neg find hasMultipleIncomingTrainsition(s); | ||
81 | } | ||
82 | |||
83 | pattern hasMultipleOutgoingTrainsition(v : Synchronization) { | ||
84 | find transition(_, v, trg1); | ||
85 | find transition(_, v, trg2); | ||
86 | trg1 != trg2; | ||
87 | } | ||
88 | |||
89 | pattern hasMultipleIncomingTrainsition(v : Synchronization) { | ||
90 | find transition(_, src1, v); | ||
91 | find transition(_, src2, v); | ||
92 | src1 != src2; | ||
93 | } | ||
94 | |||
95 | @Constraint(severity="error", message="error", key = {s}) | ||
96 | pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) { | ||
97 | find transition(_, v1, s); | ||
98 | find transition(_, v2, s); | ||
99 | CompositeElement.regions.vertices(r1, v1); | ||
100 | CompositeElement.regions.vertices(r2, v2); | ||
101 | r1 != r2; | ||
102 | } or { | ||
103 | find transition(_, s, v1); | ||
104 | find transition(_, s, v2); | ||
105 | CompositeElement.regions.vertices(r1, v1); | ||
106 | CompositeElement.regions.vertices(r2, v2); | ||
107 | r1 != r2; | ||
108 | } | ||
109 | |||
110 | /////////////////////////////// | ||
111 | // Extra | ||
112 | // | ||
113 | //@Constraint(severity="error", message="error", key = {s}) | ||
114 | //pattern SynchronizedRegionDoesNotHaveParent(s : Synchronization, v : Vertex) { | ||
115 | // find transition(_, v, s); | ||
116 | // neg find child(_,v); | ||
117 | //} or { | ||
118 | // find transition(_, s, v); | ||
119 | // neg find child(_,v); | ||
120 | //} | ||
121 | |||
122 | pattern child(parent: CompositeElement, child: Vertex) { | ||
123 | CompositeElement.regions.vertices(parent, child); | ||
124 | } | ||
125 | |||
126 | @Constraint(severity="error", message="error", key = {s}) | ||
127 | pattern SynchronizedRegionDoesNotHaveMultipleRegions(s : Synchronization, v : Vertex) { | ||
128 | find transition(_, v, s); | ||
129 | find child(c,v); | ||
130 | neg find hasMultipleRegions(c); | ||
131 | } or { | ||
132 | find transition(_, s, v); | ||
133 | find child(c,v); | ||
134 | neg find hasMultipleRegions(c); | ||
135 | } | ||
136 | |||
137 | |||
138 | pattern hasMultipleRegions(composite: CompositeElement) { | ||
139 | CompositeElement.regions(composite,region1); | ||
140 | CompositeElement.regions(composite,region2); | ||
141 | region1 != region2; | ||
142 | } | ||
143 | |||
144 | // multiplicity constraints | ||
145 | @Constraint(severity="error", message="error", key = {s}) | ||
146 | pattern synchThree(s: Synchronization) { | ||
147 | Transition.target(t1,s); | ||
148 | Transition.target(t2,s); | ||
149 | Transition.target(t3,s); | ||
150 | t1!=t2; | ||
151 | t2!=t3; | ||
152 | t1!=t3; | ||
153 | } or { | ||
154 | Transition.source(t1,s); | ||
155 | Transition.source(t2,s); | ||
156 | Transition.source(t3,s); | ||
157 | t1!=t2; | ||
158 | t2!=t3; | ||
159 | t1!=t3; | ||
160 | } | ||
161 | |||
162 | @Constraint(severity="error", message="error", key = {s1,s2}) | ||
163 | pattern twoSynch(s1 : Synchronization, s2 : Synchronization) { | ||
164 | Synchronization(s1); | ||
165 | Synchronization(s2); | ||
166 | s1 != s2; | ||
167 | } | ||
168 | |||
169 | pattern synch(s:Synchronization) { | ||
170 | Synchronization(s); | ||
171 | } | ||
172 | @Constraint(severity="error", message="error", key = {s}) | ||
173 | pattern noSynch(s:Statechart) { | ||
174 | Statechart(s); | ||
175 | neg find synch(_); | ||
176 | } | ||
177 | @Constraint(severity="error", message="error", key = {s}) | ||
178 | pattern noSynch1(s:Statechart) { | ||
179 | Statechart(s); | ||
180 | neg find synch(_); | ||
181 | } | ||
182 | @Constraint(severity="error", message="error", key = {s}) | ||
183 | pattern noSynch2(s:Statechart) { | ||
184 | Statechart(s); | ||
185 | neg find synch(_); | ||
186 | } | ||
187 | @Constraint(severity="error", message="error", key = {s}) | ||
188 | pattern noSynch3(s:Statechart) { | ||
189 | Statechart(s); | ||
190 | neg find synch(_); | ||
191 | } | ||
192 | @Constraint(severity="error", message="error", key = {s}) | ||
193 | pattern noSynch4(s:Statechart) { | ||
194 | Statechart(s); | ||
195 | neg find synch(_); | ||
196 | } \ No newline at end of file | ||