aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
committerLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
commit60f01f46ba232ed6416054f0a6115cb2a9b70b4e (patch)
tree5edf8aeb07abc51f3fec63bbd15c926e1de09552 /Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend
parentInitial commit, migrating from SVN (diff)
downloadVIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.gz
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.zst
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.zip
Migrating Additional projects
Diffstat (limited to 'Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend')
-rw-r--r--Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend33
1 files changed, 33 insertions, 0 deletions
diff --git a/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend b/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend
new file mode 100644
index 00000000..8c2d5dad
--- /dev/null
+++ b/Solvers/SMT-Solver/hu.bme.mit.inf.dslreasoner.smt.reasoner/src/hu/bme/mit/inf/dslreasoner/smt/reasoner/Logic2SmtMapper_UnfoldingSupport.xtend
@@ -0,0 +1,33 @@
1package hu.bme.mit.inf.dslreasoner.smt.reasoner
2
3//import hu.bme.mit.inf.dslreasoner.smtLanguage.SmtLanguageFactory
4import java.util.ArrayList
5import java.util.List
6
7class Logic2SmtMapper_UnfoldingSupport {
8 //val extension SmtLanguageFactory factory = SmtLanguageFactory.eINSTANCE
9
10 def List<List<TypeConstraint>> getPermutations(List<List<TypeConstraint>> lists) {
11 if(lists.size == 1) {
12 val elements = lists.head
13 val result = new ArrayList(elements.size)
14 for(element: elements){
15 result.add(#[element.copy])
16 }
17 return result
18 } else {
19 val permuteThis = lists.head
20 val withThat = getPermutations(lists.tail.toList)
21 val result = new ArrayList(permuteThis.size*withThat.size)
22 for(h:permuteThis) {
23 for(t:withThat) {
24 val l = new ArrayList(withThat.size+1)
25 l+=h.copy
26 l.addAll(t.map[copy])
27 result.add(l)
28 }
29 }
30 return result
31 }
32 }
33} \ No newline at end of file