aboutsummaryrefslogtreecommitdiffstats
path: root/Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql
diff options
context:
space:
mode:
Diffstat (limited to 'Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql')
-rw-r--r--Domains/hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph/queries/hu/bme/mit/inf/dslreasoner/partialsnapshot_mavo/yakindu/patterns.vql64
1 files changed, 42 insertions, 22 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
index f4bfa3c1..98a10cde 100644
--- 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
@@ -27,14 +27,22 @@ pattern transition(t : Transition, src : Vertex, trg : Vertex) {
27 Transition.target(t, trg); 27 Transition.target(t, trg);
28} 28}
29 29
30pattern transitionFrom(t : Transition, src : Vertex) {
31 Transition.source(t, src);
32}
33
34pattern transitionTo(t : Transition, trg : Vertex) {
35 Transition.target(t, trg);
36}
37
30@Constraint(severity="error", message="error", key = {e}) 38@Constraint(severity="error", message="error", key = {e})
31pattern incomingToEntry(t : Transition, e : Entry) { 39pattern incomingToEntry(t : Transition, e : Entry) {
32 find transition(t, _, e); 40 find transitionTo(t, e);
33} 41}
34 42
35@Constraint(severity="error", message="error", key = {e}) 43@Constraint(severity="error", message="error", key = {e})
36pattern noOutgoingTransitionFromEntry(e : Entry) { 44pattern noOutgoingTransitionFromEntry(e : Entry) {
37 neg find transition(_, e, _); 45 neg find transitionFrom(_, e);
38} 46}
39 47
40@Constraint(severity="error", message="error", key = {e}) 48@Constraint(severity="error", message="error", key = {e})
@@ -80,12 +88,12 @@ pattern StateInRegion(region: Region, state: State) {
80 88
81@Constraint(severity="error", message="error", key = {c}) 89@Constraint(severity="error", message="error", key = {c})
82pattern choiceHasNoOutgoing(c : Choice) { 90pattern choiceHasNoOutgoing(c : Choice) {
83 neg find transition(_, c, _); 91 neg find transitionFrom(_, c);
84} 92}
85 93
86@Constraint(severity="error", message="error", key = {c}) 94@Constraint(severity="error", message="error", key = {c})
87pattern choiceHasNoIncoming(c: Choice) { 95pattern choiceHasNoIncoming(c: Choice) {
88 neg find transition(_, _, c); 96 neg find transitionTo(_, c);
89} 97}
90 98
91///////// 99/////////
@@ -94,27 +102,33 @@ pattern choiceHasNoIncoming(c: Choice) {
94 102
95@Constraint(severity="error", message="error", key = {s}) 103@Constraint(severity="error", message="error", key = {s})
96pattern synchHasNoOutgoing(s : Synchronization) { 104pattern synchHasNoOutgoing(s : Synchronization) {
97 neg find transition(_, s, _); 105 neg find transitionFrom(_, s);
98} 106}
99 107
100@Constraint(severity="error", message="error", key = {s}) 108@Constraint(severity="error", message="error", key = {s})
101pattern synchHasNoIncoming(s : Synchronization) { 109pattern synchHasNoIncoming(s : Synchronization) {
102 neg find transition(_, _, s); 110 neg find transitionTo(_, s);
103} 111}
104 112
105@Constraint(severity="error", message="error", key = {s}) 113@Constraint(severity="error", message="error", key = {s})
106pattern SynchronizedIncomingInSameRegion(s : Synchronization, v1 : Vertex, v2 : Vertex) { 114pattern SynchronizedIncomingInSameRegion(s : Synchronization, t1 : Transition, t2 : Transition) {
107 find transition(t1, v1, s); 115 find SynchronizedIncomingInSameRegionHelper1(r, s, t1);
108 find transition(t2, v2, s); 116 find SynchronizedIncomingInSameRegionHelper1(r, s, t2);
109 t1!=t2; 117 t1!=t2;
110 Region.vertices(r, v1);
111 Region.vertices(r, v2);
112} or { 118} or {
113 find transition(t1, s, v1); 119 find SynchronizedIncomingInSameRegionHelper2(r, s, t1);
114 find transition(t2, s, v2); 120 find SynchronizedIncomingInSameRegionHelper2(r, s, t2);
115 t1!=t2; 121 t1!=t2;
122}
123
124pattern SynchronizedIncomingInSameRegionHelper1(r : Region, s : Synchronization, t1 : Transition) {
125 find transition(t1, v1, s);
126 Region.vertices(r, v1);
127}
128
129pattern SynchronizedIncomingInSameRegionHelper2(r : Region, s : Synchronization, t1 : Transition) {
130 find transition(t1, s, v1);
116 Region.vertices(r, v1); 131 Region.vertices(r, v1);
117 Region.vertices(r, v2);
118} 132}
119 133
120@Constraint(severity="error", message="error", key = {s}) 134@Constraint(severity="error", message="error", key = {s})
@@ -136,18 +150,24 @@ pattern hasMultipleIncomingTrainsition(v : Synchronization) {
136} 150}
137 151
138@Constraint(severity="error", message="error", key = {s}) 152@Constraint(severity="error", message="error", key = {s})
139pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, v1 : Vertex, v2 : Vertex) { 153pattern SynchronizedRegionsAreNotSiblings(s : Synchronization, r1 : CompositeElement, r2 : CompositeElement) {
140 find transition(_, v1, s); 154 find SynchronizedRegionsAreNotSiblingsHelper1(s, r1);
141 find transition(_, v2, s); 155 find SynchronizedRegionsAreNotSiblingsHelper1(s, r2);
142 CompositeElement.regions.vertices(r1, v1);
143 CompositeElement.regions.vertices(r2, v2);
144 r1 != r2; 156 r1 != r2;
145} or { 157} or {
158 find SynchronizedRegionsAreNotSiblingsHelper2(s, r1);
159 find SynchronizedRegionsAreNotSiblingsHelper2(s, r2);
160 r1 != r2;
161}
162
163pattern SynchronizedRegionsAreNotSiblingsHelper1(s : Synchronization, r1 : CompositeElement) {
146 find transition(_, s, v1); 164 find transition(_, s, v1);
147 find transition(_, s, v2);
148 CompositeElement.regions.vertices(r1, v1); 165 CompositeElement.regions.vertices(r1, v1);
149 CompositeElement.regions.vertices(r2, v2); 166}
150 r1 != r2; 167
168pattern SynchronizedRegionsAreNotSiblingsHelper2(s : Synchronization, r1 : CompositeElement) {
169 find transition(_, v1, s);
170 CompositeElement.regions.vertices(r1, v1);
151} 171}
152 172
153/////////////////////////////// 173///////////////////////////////