diff options
author | 2019-02-17 15:11:07 -0500 | |
---|---|---|
committer | 2020-06-07 19:18:53 -0400 | |
commit | 1942180d760110c2b9664715bf8e30efec256954 (patch) | |
tree | 4d0e72dca29606dd840aafb4537054a447678452 /Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als | |
parent | Integrate queries partially #19 (diff) | |
download | VIATRA-Generator-1942180d760110c2b9664715bf8e30efec256954.tar.gz VIATRA-Generator-1942180d760110c2b9664715bf8e30efec256954.tar.zst VIATRA-Generator-1942180d760110c2b9664715bf8e30efec256954.zip |
Commit before merge
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als')
-rw-r--r-- | Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als index 16ff4006..716e4f33 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/outputs/fam/debug/problem.als | |||
@@ -1,6 +1,6 @@ | |||
1 | one sig util'language { | 1 | one sig util'language { |
2 | util'root : one type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))), | 2 | util'root : one type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))), |
3 | util'contains : (type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) lone->set (type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) | 3 | util'contains : (type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) lone->set (type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart)))))))))) |
4 | } | 4 | } |
5 | abstract sig util'Object { | 5 | abstract sig util'Object { |
6 | } | 6 | } |
@@ -12,7 +12,8 @@ sig type'FunctionalArchitectureModel'class in util'Object { | |||
12 | rootElements'reference'FunctionalArchitectureModel : set type'FunctionalElement'class | 12 | rootElements'reference'FunctionalArchitectureModel : set type'FunctionalElement'class |
13 | } | 13 | } |
14 | sig type'Function'class in type'FunctionalElement'class { | 14 | sig type'Function'class in type'FunctionalElement'class { |
15 | subElements'reference'Function : set type'FunctionalElement'class | 15 | subElements'reference'Function : set type'FunctionalElement'class, |
16 | type'attribute'Function : one type'FunctionType'enum | ||
16 | } | 17 | } |
17 | sig type'FAMTerminator'class in util'Object { | 18 | sig type'FAMTerminator'class in util'Object { |
18 | data'reference'FAMTerminator : lone type'FunctionalData'class | 19 | data'reference'FAMTerminator : lone type'FunctionalData'class |
@@ -41,17 +42,14 @@ sig type'FunctionalArchitectureModel'class'DefinedPart in type'FunctionalArchite | |||
41 | } | 42 | } |
42 | sig type'FunctionalArchitectureModel'class'UndefinedPart in type'FunctionalArchitectureModel'class { | 43 | sig type'FunctionalArchitectureModel'class'UndefinedPart in type'FunctionalArchitectureModel'class { |
43 | } | 44 | } |
44 | one sig element'o'1 in type'FunctionalArchitectureModel'class'DefinedPart { | ||
45 | } | ||
46 | one sig element'Root'literal'FunctionType, | 45 | one sig element'Root'literal'FunctionType, |
47 | element'Intermediate'literal'FunctionType, | 46 | element'Intermediate'literal'FunctionType, |
48 | element'Leaf'literal'FunctionType in type'FunctionType'enum { | 47 | element'Leaf'literal'FunctionType in type'FunctionType'enum { |
49 | } | 48 | } |
50 | pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [parameter'T: type'FAMTerminator'class, parameter'I: type'InformationLink'class] { | 49 | one sig element'o'1 in type'FunctionalArchitectureModel'class'DefinedPart { |
51 | (some variable'Out: type'FunctionalOutput'class { parameter'I in variable'Out.outgoingLinks'reference'FunctionalOutput && parameter'T in variable'Out.terminator'reference'FunctionalData }) || (some variable'In: type'FunctionalInput'class { variable'In in parameter'I.to'reference'InformationLink && (variable'In in type'FunctionalInput'class && parameter'T in variable'In.terminator'reference'FunctionalData) }) | ||
52 | } | 50 | } |
53 | pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [parameter'This: type'Function'class, parameter'Target: type'FunctionType'enum] { | 51 | pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [parameter'T: type'FAMTerminator'class, parameter'I: type'InformationLink'class] { |
54 | (some variable'Model: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [ variable'Model , parameter'This ] && parameter'Target = element'Root'literal'FunctionType }) || ((all variable'Child: type'Function'class, variable'Model: type'FunctionalArchitectureModel'class { parameter'This in type'Function'class && (! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'parent [ variable'Child , parameter'This ]) && (! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [ variable'Model , parameter'This ]) && parameter'Target = element'Leaf'literal'FunctionType)) }) || (some variable'Par: type'Function'class, variable'Child: type'Function'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'parent [ parameter'This , variable'Par ] && (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'parent [ variable'Child , parameter'This ] && parameter'Target = element'Intermediate'literal'FunctionType) })) | 52 | (some variable'Out: type'FunctionalOutput'class { parameter'I in variable'Out.outgoingLinks'reference'FunctionalOutput && parameter'T in variable'Out.terminator'reference'FunctionalData }) or (some variable'In: type'FunctionalInput'class { variable'In in parameter'I.to'reference'InformationLink && (variable'In in type'FunctionalInput'class && parameter'T in variable'In.terminator'reference'FunctionalData) }) |
55 | } | 53 | } |
56 | pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [parameter'Model: type'FunctionalArchitectureModel'class, parameter'Root: type'Function'class] { | 54 | pred pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'rootElements [parameter'Model: type'FunctionalArchitectureModel'class, parameter'Root: type'Function'class] { |
57 | parameter'Root in type'Function'class && parameter'Root in parameter'Model.rootElements'reference'FunctionalArchitectureModel | 55 | parameter'Root in type'Function'class && parameter'Root in parameter'Model.rootElements'reference'FunctionalArchitectureModel |
@@ -159,19 +157,19 @@ fact util'containmentDefinition { | |||
159 | util'language.util'contains = interface'reference'FunctionalElement + (rootElements'reference'FunctionalArchitectureModel + (subElements'reference'Function + (data'reference'FunctionalInterface + (outgoingLinks'reference'FunctionalOutput + terminator'reference'FunctionalData)))) | 157 | util'language.util'contains = interface'reference'FunctionalElement + (rootElements'reference'FunctionalArchitectureModel + (subElements'reference'Function + (data'reference'FunctionalInterface + (outgoingLinks'reference'FunctionalOutput + terminator'reference'FunctionalData)))) |
160 | } | 158 | } |
161 | fact util'noParentForRoot { | 159 | fact util'noParentForRoot { |
162 | no parent: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->(util'language.util'root) in util'language.util'contains } | 160 | no parent: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->(util'language.util'root) in util'language.util'contains } |
163 | } | 161 | } |
164 | fact util'atLeastOneParent { | 162 | fact util'atLeastOneParent { |
165 | all child: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { child = util'language.util'root || (some parent: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->child in util'language.util'contains }) } | 163 | all child: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { child = util'language.util'root or (some parent: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { parent->child in util'language.util'contains }) } |
166 | } | 164 | } |
167 | fact util'noCircularContainment { | 165 | fact util'noCircularContainment { |
168 | no circle: type'FunctionalArchitectureModel'class + (type'FunctionalData'class + (type'Function'class + (type'FAMTerminator'class + (type'InformationLink'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalInput'class + (type'FunctionalOutput'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { circle->circle in ^ (util'language.util'contains) } | 166 | no circle: type'InformationLink'class + (type'FunctionalOutput'class + (type'FunctionalInput'class + (type'FunctionalData'class + (type'FunctionalArchitectureModel'class + (type'FAMTerminator'class + (type'Function'class + (type'FunctionalInterface'class + (type'FunctionalElement'class + (type'FunctionalArchitectureModel'class'DefinedPart + type'FunctionalArchitectureModel'class'UndefinedPart))))))))) { circle->circle in ^ (util'language.util'contains) } |
169 | } | 167 | } |
170 | fact lowerMultiplicity'model'FunctionalElement { | 168 | fact lowerMultiplicity'model'FunctionalElement { |
171 | all src: type'FunctionalElement'class { some trg'1: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] } } | 169 | all src: type'FunctionalElement'class { some trg'1: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] } } |
172 | } | 170 | } |
173 | fact upperMultiplicity'model'FunctionalElement { | 171 | fact upperMultiplicity'model'FunctionalElement { |
174 | all src: type'FunctionalElement'class, trg'1: type'FunctionalArchitectureModel'class, trg'2: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] && pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'2 ] => ! (trg'1 != trg'2) } | 172 | all src: type'FunctionalElement'class, trg'1: type'FunctionalArchitectureModel'class, trg'2: type'FunctionalArchitectureModel'class { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'1 ] && pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'model [ src , trg'2 ] implies ! (trg'1 != trg'2) } |
175 | } | 173 | } |
176 | fact oppositeReference'interface'FunctionalElement { | 174 | fact oppositeReference'interface'FunctionalElement { |
177 | interface'reference'FunctionalElement = ~ element'reference'FunctionalInterface | 175 | interface'reference'FunctionalElement = ~ element'reference'FunctionalInterface |
@@ -191,13 +189,7 @@ fact oppositeReference'to'InformationLink { | |||
191 | fact oppositeReference'data'FunctionalInterface { | 189 | fact oppositeReference'data'FunctionalInterface { |
192 | data'reference'FunctionalInterface = ~ interface'reference'FunctionalData | 190 | data'reference'FunctionalInterface = ~ interface'reference'FunctionalData |
193 | } | 191 | } |
194 | fact lowerMultiplicity'type'Function { | ||
195 | all src: type'Function'class { some trg'1: type'FunctionType'enum { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [ src , trg'1 ] } } | ||
196 | } | ||
197 | fact upperMultiplicity'type'Function { | ||
198 | all src: type'Function'class, trg'1: type'FunctionType'enum, trg'2: type'FunctionType'enum { pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [ src , trg'1 ] && pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'type [ src , trg'2 ] => ! (trg'1 != trg'2) } | ||
199 | } | ||
200 | fact errorpattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation { | 192 | fact errorpattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation { |
201 | all p0: type'FAMTerminator'class, p1: type'InformationLink'class { ! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [ p0 , p1 ]) } | 193 | all p0: type'FAMTerminator'class, p1: type'InformationLink'class { ! (pattern'ca'mcgill'ecse'dslreasoner'standalone'test'fam'queries'terminatorAndInformation [ p0 , p1 ]) } |
202 | } | 194 | } |
203 | run { } for exactly 5 util'Object , 31 Int , exactly 0 String \ No newline at end of file | 195 | run { } for exactly 10 util'Object , 31 Int , exactly 0 String \ No newline at end of file |