aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-10-08 03:00:08 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-10-08 03:00:08 -0400
commitf63a94c06268b5233264436cc538062f1f7b01bc (patch)
treecbdc3dcdb34ecbeaba24991c36c34205df79e32e
parentVAMPIRE: Implement Vampire measurement code (diff)
downloadVIATRA-Generator-f63a94c06268b5233264436cc538062f1f7b01bc.tar.gz
VIATRA-Generator-f63a94c06268b5233264436cc538062f1f7b01bc.tar.zst
VIATRA-Generator-f63a94c06268b5233264436cc538062f1f7b01bc.zip
VAMPIRE: fix bug in transformation, further implement measurement code
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend1
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend8
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend56
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend49
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.xtend5
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbinbin2691 -> 2845 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbinbin7020 -> 6973 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java13
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbinbin18099 -> 19565 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbinbin3164 -> 3165 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbinbin11807 -> 11807 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbinbin7934 -> 7880 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbinbin10676 -> 10676 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbinbin13060 -> 13059 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbinbin11037 -> 11038 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbinbin3950 -> 3997 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbinbin6882 -> 6937 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java60
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.java3
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml10
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend111
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin4545 -> 4545 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin6624 -> 6624 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin6204 -> 6204 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin6456 -> 6456 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin7597 -> 7838 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java91
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4997 -> 4997 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6500 -> 6500 bytes
36 files changed, 260 insertions, 171 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend
index 98967181..fc8d3e99 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireAnalyzerConfiguration.xtend
@@ -6,6 +6,7 @@ class VampireSolverConfiguration extends LogicSolverConfiguration {
6 6
7 public var int contCycleLevel = 0 7 public var int contCycleLevel = 0
8 public var boolean uniquenessDuplicates = false 8 public var boolean uniquenessDuplicates = false
9 public var int iteration = -1
9 //choose needed backend solver 10 //choose needed backend solver
10// public var VampireBackendSolver solver = VampireBackendSolver.SAT4J 11// public var VampireBackendSolver solver = VampireBackendSolver.SAT4J
11} 12}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend
index 3b5cec0a..3281a196 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend
@@ -46,6 +46,8 @@ class VampireSolver extends LogicReasoner {
46 val transformationStart = System.currentTimeMillis 46 val transformationStart = System.currentTimeMillis
47 // TODO 47 // TODO
48 val result = forwardMapper.transformProblem(problem, vampireConfig) 48 val result = forwardMapper.transformProblem(problem, vampireConfig)
49 val transformationTime = System.currentTimeMillis - transformationStart
50
49 val vampireProblem = result.output 51 val vampireProblem = result.output
50 val forwardTrace = result.trace 52 val forwardTrace = result.trace
51 53
@@ -71,19 +73,17 @@ class VampireSolver extends LogicReasoner {
71 73
72 74
73 // Result as String 75 // Result as String
74 val transformationTime = System.currentTimeMillis - transformationStart 76
75 // Finish: Logic -> Vampire mapping 77 // Finish: Logic -> Vampire mapping
76 78
77 // Start: Solving .tptp problem 79 // Start: Solving .tptp problem
78 val solverStart = System.currentTimeMillis
79 val MonitoredVampireSolution vampSol = handler.callSolver(vampireProblem, workspace, vampireConfig) 80 val MonitoredVampireSolution vampSol = handler.callSolver(vampireProblem, workspace, vampireConfig)
80 val solvingTime = System.currentTimeMillis - solverStart
81 // Finish: Solving .tptp problem 81 // Finish: Solving .tptp problem
82 82
83 // Start: Vampire -> Logic mapping 83 // Start: Vampire -> Logic mapping
84 val backTransformationStart = System.currentTimeMillis 84 val backTransformationStart = System.currentTimeMillis
85 // Backwards Mapper 85 // Backwards Mapper
86 val logicResult = backwardMapper.transformOutput(problem,vampireConfig.solutionScope.numberOfRequiredSolution,vampSol,forwardTrace,solvingTime) 86 val logicResult = backwardMapper.transformOutput(problem,vampireConfig.solutionScope.numberOfRequiredSolution,vampSol,forwardTrace,transformationTime)
87 87
88 val backTransformationTime = System.currentTimeMillis - backTransformationStart 88 val backTransformationTime = System.currentTimeMillis - backTransformationStart
89 // Finish: Vampire -> Logic Mapping 89 // Finish: Vampire -> Logic Mapping
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
index b617912d..60309f2d 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
@@ -79,14 +79,15 @@ class Logic2VampireLanguageMapper {
79 if (!problem.types.isEmpty) { 79 if (!problem.types.isEmpty) {
80 typeMapper.transformTypes(problem.types, problem.elements, this, trace) 80 typeMapper.transformTypes(problem.types, problem.elements, this, trace)
81 } 81 }
82 82
83 // RELATION MAPPER 83 // RELATION MAPPER
84 trace.relationDefinitions = problem.collectRelationDefinitions 84 trace.relationDefinitions = problem.collectRelationDefinitions
85// println(problem.relations.filter[class == RelationDefinitionImpl]) 85// println(problem.relations.filter[class == RelationDefinitionImpl])
86 toTrace(problem.relations.filter[class == RelationDefinitionImpl], trace)
86 problem.relations.forEach[this.relationMapper.transformRelation(it, trace, new Logic2VampireLanguageMapper)] 87 problem.relations.forEach[this.relationMapper.transformRelation(it, trace, new Logic2VampireLanguageMapper)]
87 88
88 // CONTAINMENT MAPPER 89 // CONTAINMENT MAPPER
89 containmentMapper.transformContainment(config,problem.containmentHierarchies, trace) 90 containmentMapper.transformContainment(config, problem.containmentHierarchies, trace)
90 91
91 // SCOPE MAPPER 92 // SCOPE MAPPER
92 scopeMapper.transformScope(problem.types, config, trace) 93 scopeMapper.transformScope(problem.types, config, trace)
@@ -107,6 +108,39 @@ class Logic2VampireLanguageMapper {
107 return new TracedOutput(specification, trace) 108 return new TracedOutput(specification, trace)
108 } 109 }
109 110
111 def toTrace(Iterable<Relation> relations, Logic2VampireLanguageMapperTrace trace) {
112 val List<VLSVariable> vars = newArrayList
113 for (rel : relations) {
114 //decide name
115 val nameArray = rel.name.split(" ")
116 var relNameVar = ""
117 if (nameArray.length == 3) {
118 relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2))
119 } else {
120 relNameVar = rel.name
121 }
122 val relName = relNameVar
123
124 val relDef = rel as RelationDefinition
125 for (i : 0 ..< rel.parameters.length) {
126
127 val v = createVLSVariable => [
128 it.name = support.toIDMultiple("V", i.toString)
129 ]
130 vars.add(v)
131 }
132
133 val relFunc = createVLSFunction => [
134 it.constant = support.toIDMultiple("r", relName)
135 for (v : vars) {
136 it.terms += support.duplicate(v)
137 }
138 ]
139 trace.relDef2Predicate.put(relDef, relFunc)
140 trace.predicate2RelDef.put(relFunc, relDef)
141 }
142 }
143
110 // End of transformProblem 144 // End of transformProblem
111 // //////////// 145 // ////////////
112 // Type References 146 // Type References
@@ -169,7 +203,6 @@ class Logic2VampireLanguageMapper {
169// Map<Variable, VLSVariable> variables) { 203// Map<Variable, VLSVariable> variables) {
170// createVLSReal => [it.value = literal.value.toString()] 204// createVLSReal => [it.value = literal.value.toString()]
171// } 205// }
172
173 def dispatch protected VLSTerm transformTerm(Not not, Logic2VampireLanguageMapperTrace trace, 206 def dispatch protected VLSTerm transformTerm(Not not, Logic2VampireLanguageMapperTrace trace,
174 Map<Variable, VLSVariable> variables) { 207 Map<Variable, VLSVariable> variables) {
175 createVLSUnaryNegation => [operand = not.operand.transformTerm(trace, variables)] 208 createVLSUnaryNegation => [operand = not.operand.transformTerm(trace, variables)]
@@ -265,10 +298,10 @@ class Logic2VampireLanguageMapper {
265 def dispatch protected VLSTerm transformSymbolicReference(DefinedElement referred, 298 def dispatch protected VLSTerm transformSymbolicReference(DefinedElement referred,
266 List<Term> parameterSubstitutions, Logic2VampireLanguageMapperTrace trace, 299 List<Term> parameterSubstitutions, Logic2VampireLanguageMapperTrace trace,
267 Map<Variable, VLSVariable> variables) { 300 Map<Variable, VLSVariable> variables) {
268 val name = referred.lookup(trace.definedElement2String) 301 val name = referred.lookup(trace.definedElement2String)
269 return createVLSConstant => [ 302 return createVLSConstant => [
270 it.name = name 303 it.name = name
271 ] 304 ]
272// typeMapper.transformReference(referred, trace) 305// typeMapper.transformReference(referred, trace)
273 } 306 }
274 307
@@ -390,12 +423,11 @@ class Logic2VampireLanguageMapper {
390// } 423// }
391 return createVLSFunction => [ 424 return createVLSFunction => [
392 if (relation.class == RelationDeclarationImpl) { 425 if (relation.class == RelationDeclarationImpl) {
393 it.constant = (relation as RelationDeclaration).lookup(trace.rel2Predicate).constant 426 it.constant = (relation as RelationDeclaration).lookup(trace.rel2Predicate).constant
394 } 427 } else {
395 else {
396 it.constant = (relation as RelationDefinition).lookup(trace.relDef2Predicate).constant 428 it.constant = (relation as RelationDefinition).lookup(trace.relDef2Predicate).constant
397 } 429 }
398 430
399 it.terms += parameterSubstitutions.map[p|p.transformTerm(trace, variables)] 431 it.terms += parameterSubstitutions.map[p|p.transformTerm(trace, variables)]
400 ] 432 ]
401 } 433 }
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
index 181c59ca..efedf6dc 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
@@ -23,7 +23,8 @@ class Logic2VampireLanguageMapper_RelationMapper {
23 this.base = base 23 this.base = base
24 } 24 }
25 25
26 def dispatch public void transformRelation(RelationDeclaration r, Logic2VampireLanguageMapperTrace trace, Logic2VampireLanguageMapper mapper) { 26 def dispatch public void transformRelation(RelationDeclaration r, Logic2VampireLanguageMapperTrace trace,
27 Logic2VampireLanguageMapper mapper) {
27 28
28 // 1. store all variables in support wrt their name 29 // 1. store all variables in support wrt their name
29 // 1.1 if variable has type, creating list of type declarations 30 // 1.1 if variable has type, creating list of type declarations
@@ -42,19 +43,18 @@ class Logic2VampireLanguageMapper_RelationMapper {
42 43
43 } 44 }
44 45
45 //deciding name of relation 46 // deciding name of relation
46 val nameArray = r.name.split(" ") 47 val nameArray = r.name.split(" ")
47 var relNameVar = "" 48 var relNameVar = ""
48 if (nameArray.length == 3) { 49 if (nameArray.length == 3) {
49 relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2)) 50 relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2))
50 } 51 } else {
51 else {
52 relNameVar = r.name 52 relNameVar = r.name
53 } 53 }
54 val relName = relNameVar 54 val relName = relNameVar
55 55
56 val comply = createVLSFofFormula=> [ 56 val comply = createVLSFofFormula => [
57 57
58 it.name = support.toIDMultiple("compliance", relName) 58 it.name = support.toIDMultiple("compliance", relName)
59 it.fofRole = "axiom" 59 it.fofRole = "axiom"
60 it.fofFormula = createVLSUniversalQuantifier => [ 60 it.fofFormula = createVLSUniversalQuantifier => [
@@ -79,10 +79,10 @@ class Logic2VampireLanguageMapper_RelationMapper {
79 trace.specification.formulas += comply 79 trace.specification.formulas += comply
80 } 80 }
81 81
82 def dispatch public void transformRelation(RelationDefinition r, Logic2VampireLanguageMapperTrace trace, Logic2VampireLanguageMapper mapper) { 82 def dispatch public void transformRelation(RelationDefinition r, Logic2VampireLanguageMapperTrace trace,
83 83 Logic2VampireLanguageMapper mapper) {
84// println("XXXXXXXXXXXXXXXXX")
85 84
85// println("XXXXXXXXXXXXXXXXX")
86// 1. store all variables in support wrt their name 86// 1. store all variables in support wrt their name
87 // 1.1 if variable has type, creating list of type declarations 87 // 1.1 if variable has type, creating list of type declarations
88 val Map<Variable, VLSVariable> relVar2VLS = new HashMap 88 val Map<Variable, VLSVariable> relVar2VLS = new HashMap
@@ -102,34 +102,30 @@ class Logic2VampireLanguageMapper_RelationMapper {
102 102
103 } 103 }
104 104
105 //deciding name of relation 105 // deciding name of relation
106 val nameArray = r.name.split(" ") 106 val nameArray = r.name.split(" ")
107 var relNameVar = "" 107 var relNameVar = ""
108 if (nameArray.length == 3) { 108 if (nameArray.length == 3) {
109 relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2)) 109 relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2))
110 } 110 } else {
111 else {
112 relNameVar = r.name 111 relNameVar = r.name
113 } 112 }
114 val relName = relNameVar 113 val relName = relNameVar
115 114
116 //define logic for pattern 115 // define logic for pattern
117// val map = new HashMap 116// val map = new HashMap
118// map.put(r.variables.get(0), createVLSVariable) 117// map.put(r.variables.get(0), createVLSVariable)
119 val definition = mapper.transformTerm(r.value, trace, relVar2VLS) 118 val definition = mapper.transformTerm(r.value, trace, relVar2VLS)
120 119
121 120 // get entire contents of and
122
123
124 //get entire contents of and
125 val compliance = support.unfoldAnd(relVar2TypeDecComply) 121 val compliance = support.unfoldAnd(relVar2TypeDecComply)
126 val compDefn = createVLSAnd=> [ 122 val compDefn = createVLSAnd => [
127 it.left = compliance 123 it.left = compliance
128 it.right = definition 124 it.right = definition
129 ] 125 ]
130 126
131 val relDef = createVLSFofFormula=> [ 127 val relDef = createVLSFofFormula => [
132 128
133 it.name = support.toID(relName) 129 it.name = support.toID(relName)
134 it.fofRole = "axiom" 130 it.fofRole = "axiom"
135 it.fofFormula = createVLSUniversalQuantifier => [ 131 it.fofFormula = createVLSUniversalQuantifier => [
@@ -143,14 +139,13 @@ class Logic2VampireLanguageMapper_RelationMapper {
143 it.terms += support.duplicate(v) 139 it.terms += support.duplicate(v)
144 } 140 }
145 ] 141 ]
146 trace.relDef2Predicate.put(r, rel) 142// trace.relDef2Predicate.put(r, rel)
147 trace.predicate2RelDef.put(rel, r) 143// trace.predicate2RelDef.put(rel, r)
148 it.left = support.duplicate(rel) 144 it.left = support.duplicate(rel)
149 it.right = compDefn 145 it.right = compDefn
150 ] 146 ]
151 ] 147 ]
152 ] 148 ]
153
154 trace.specification.formulas += relDef 149 trace.specification.formulas += relDef
155 150
156 } 151 }
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.xtend
index 489bf423..e136d1c6 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.xtend
@@ -8,7 +8,7 @@ class Vampire2LogicMapper {
8 8
9// 9//
10 public def transformOutput(LogicProblem problem, int requiredNumberOfSolution, 10 public def transformOutput(LogicProblem problem, int requiredNumberOfSolution,
11 MonitoredVampireSolution monitoredVampireSolution, Logic2VampireLanguageMapperTrace trace, 11 MonitoredVampireSolution monitoredVampireSolution, Logic2VampireLanguageMapperTrace trace,
12 long transformationTime) { 12 long transformationTime) {
13 13
14 // ModelRsult implements LogicResult 14 // ModelRsult implements LogicResult
@@ -22,7 +22,8 @@ class Vampire2LogicMapper {
22 22
23 def transformStatistics(MonitoredVampireSolution solution, long transformationTime) { 23 def transformStatistics(MonitoredVampireSolution solution, long transformationTime) {
24 return createStatistics => [ 24 return createStatistics => [
25 it.transformationTime = solution.solverTime as int 25 it.solverTime = solution.solverTime as int
26 it.transformationTime = transformationTime as int
26 ] 27 ]
27// createStatistics => [ 28// createStatistics => [
28// it.transformationTime = transformationTime as int 29// it.transformationTime = transformationTime as int
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend
index 74532ee5..c5cfb1c7 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend
@@ -44,7 +44,7 @@ class VampireHandler {
44 val VAMPNAME = "vampire.exe" 44 val VAMPNAME = "vampire.exe"
45 val TEMPNAME = "TEMP.tptp" 45 val TEMPNAME = "TEMP.tptp"
46 val OPTION = " --mode casc_sat -t 300 " 46 val OPTION = " --mode casc_sat -t 300 "
47 val SOLNNAME = "_solution" + configuration.typeScopes.maxNewElements + ".tptp" 47 val SOLNNAME = "solution" + configuration.typeScopes.maxNewElements +"_" + configuration.iteration + ".tptp"
48 val PATH = "C:/cygwin64/bin" 48 val PATH = "C:/cygwin64/bin"
49 49
50 val wsURI = workspace.workspaceURI 50 val wsURI = workspace.workspaceURI
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
index 600187ca..2c203d6e 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
index 9517185f..f2461efc 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java
index 1241dcb2..c3e185f5 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java
@@ -62,6 +62,8 @@ public class VampireSolver extends LogicReasoner {
62 final VampireSolverConfiguration vampireConfig = this.asConfig(config); 62 final VampireSolverConfiguration vampireConfig = this.asConfig(config);
63 final long transformationStart = System.currentTimeMillis(); 63 final long transformationStart = System.currentTimeMillis();
64 final TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace> result = this.forwardMapper.transformProblem(problem, vampireConfig); 64 final TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace> result = this.forwardMapper.transformProblem(problem, vampireConfig);
65 long _currentTimeMillis = System.currentTimeMillis();
66 final long transformationTime = (_currentTimeMillis - transformationStart);
65 final VampireModel vampireProblem = result.getOutput(); 67 final VampireModel vampireProblem = result.getOutput();
66 final Logic2VampireLanguageMapperTrace forwardTrace = result.getTrace(); 68 final Logic2VampireLanguageMapperTrace forwardTrace = result.getTrace();
67 String fileURI = null; 69 String fileURI = null;
@@ -72,16 +74,11 @@ public class VampireSolver extends LogicReasoner {
72 if (writeFile) { 74 if (writeFile) {
73 fileURI = workspace.writeModel(vampireProblem, this.fileName).toFileString(); 75 fileURI = workspace.writeModel(vampireProblem, this.fileName).toFileString();
74 } 76 }
75 long _currentTimeMillis = System.currentTimeMillis();
76 final long transformationTime = (_currentTimeMillis - transformationStart);
77 final long solverStart = System.currentTimeMillis();
78 final MonitoredVampireSolution vampSol = this.handler.callSolver(vampireProblem, workspace, vampireConfig); 77 final MonitoredVampireSolution vampSol = this.handler.callSolver(vampireProblem, workspace, vampireConfig);
79 long _currentTimeMillis_1 = System.currentTimeMillis();
80 final long solvingTime = (_currentTimeMillis_1 - solverStart);
81 final long backTransformationStart = System.currentTimeMillis(); 78 final long backTransformationStart = System.currentTimeMillis();
82 final ModelResult logicResult = this.backwardMapper.transformOutput(problem, vampireConfig.solutionScope.numberOfRequiredSolution, vampSol, forwardTrace, solvingTime); 79 final ModelResult logicResult = this.backwardMapper.transformOutput(problem, vampireConfig.solutionScope.numberOfRequiredSolution, vampSol, forwardTrace, transformationTime);
83 long _currentTimeMillis_2 = System.currentTimeMillis(); 80 long _currentTimeMillis_1 = System.currentTimeMillis();
84 final long backTransformationTime = (_currentTimeMillis_2 - backTransformationStart); 81 final long backTransformationTime = (_currentTimeMillis_1 - backTransformationStart);
85 return logicResult; 82 return logicResult;
86 } 83 }
87 84
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java
index ac55ebd7..5086d15a 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolverConfiguration.java
@@ -7,4 +7,6 @@ public class VampireSolverConfiguration extends LogicSolverConfiguration {
7 public int contCycleLevel = 0; 7 public int contCycleLevel = 0;
8 8
9 public boolean uniquenessDuplicates = false; 9 public boolean uniquenessDuplicates = false;
10
11 public int iteration = (-1);
10} 12}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
index 3ebc907b..f537b830 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
index c9ae6c62..14a639ad 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin
index ec8fae35..ba5dbd89 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
index 5e770b94..f5e4ca8c 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
index 1d3cd01c..6c06a366 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
index 72067608..1ee73cd6 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
index a9228720..edda9f05 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
index 3697ed87..8edf2fe9 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
index c489bf07..18c788c6 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
index c8961c6e..dc5ec788 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
@@ -54,6 +54,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
54import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; 54import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference;
55import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; 55import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable;
56import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDeclarationImpl; 56import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDeclarationImpl;
57import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDefinitionImpl;
57import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 58import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
58import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; 59import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil;
59import java.util.Arrays; 60import java.util.Arrays;
@@ -65,6 +66,9 @@ import java.util.function.Consumer;
65import org.eclipse.emf.common.util.EList; 66import org.eclipse.emf.common.util.EList;
66import org.eclipse.xtend.lib.annotations.AccessorType; 67import org.eclipse.xtend.lib.annotations.AccessorType;
67import org.eclipse.xtend.lib.annotations.Accessors; 68import org.eclipse.xtend.lib.annotations.Accessors;
69import org.eclipse.xtext.xbase.lib.CollectionLiterals;
70import org.eclipse.xtext.xbase.lib.Conversions;
71import org.eclipse.xtext.xbase.lib.ExclusiveRange;
68import org.eclipse.xtext.xbase.lib.Extension; 72import org.eclipse.xtext.xbase.lib.Extension;
69import org.eclipse.xtext.xbase.lib.Functions.Function1; 73import org.eclipse.xtext.xbase.lib.Functions.Function1;
70import org.eclipse.xtext.xbase.lib.IterableExtensions; 74import org.eclipse.xtext.xbase.lib.IterableExtensions;
@@ -118,18 +122,23 @@ public class Logic2VampireLanguageMapper {
118 this.typeMapper.transformTypes(problem.getTypes(), problem.getElements(), this, trace); 122 this.typeMapper.transformTypes(problem.getTypes(), problem.getElements(), this, trace);
119 } 123 }
120 trace.relationDefinitions = this.collectRelationDefinitions(problem); 124 trace.relationDefinitions = this.collectRelationDefinitions(problem);
121 final Consumer<Relation> _function_3 = (Relation it) -> { 125 final Function1<Relation, Boolean> _function_3 = (Relation it) -> {
126 Class<? extends Relation> _class = it.getClass();
127 return Boolean.valueOf(Objects.equal(_class, RelationDefinitionImpl.class));
128 };
129 this.toTrace(IterableExtensions.<Relation>filter(problem.getRelations(), _function_3), trace);
130 final Consumer<Relation> _function_4 = (Relation it) -> {
122 Logic2VampireLanguageMapper _logic2VampireLanguageMapper = new Logic2VampireLanguageMapper(); 131 Logic2VampireLanguageMapper _logic2VampireLanguageMapper = new Logic2VampireLanguageMapper();
123 this.relationMapper.transformRelation(it, trace, _logic2VampireLanguageMapper); 132 this.relationMapper.transformRelation(it, trace, _logic2VampireLanguageMapper);
124 }; 133 };
125 problem.getRelations().forEach(_function_3); 134 problem.getRelations().forEach(_function_4);
126 this.containmentMapper.transformContainment(config, problem.getContainmentHierarchies(), trace); 135 this.containmentMapper.transformContainment(config, problem.getContainmentHierarchies(), trace);
127 this.scopeMapper.transformScope(problem.getTypes(), config, trace); 136 this.scopeMapper.transformScope(problem.getTypes(), config, trace);
128 trace.constantDefinitions = this.collectConstantDefinitions(problem); 137 trace.constantDefinitions = this.collectConstantDefinitions(problem);
129 final Consumer<ConstantDefinition> _function_4 = (ConstantDefinition it) -> { 138 final Consumer<ConstantDefinition> _function_5 = (ConstantDefinition it) -> {
130 this.constantMapper.transformConstantDefinitionSpecification(it, trace); 139 this.constantMapper.transformConstantDefinitionSpecification(it, trace);
131 }; 140 };
132 Iterables.<ConstantDefinition>filter(problem.getConstants(), ConstantDefinition.class).forEach(_function_4); 141 Iterables.<ConstantDefinition>filter(problem.getConstants(), ConstantDefinition.class).forEach(_function_5);
133 EList<Assertion> _assertions = problem.getAssertions(); 142 EList<Assertion> _assertions = problem.getAssertions();
134 for (final Assertion assertion : _assertions) { 143 for (final Assertion assertion : _assertions) {
135 this.transformAssertion(assertion, trace); 144 this.transformAssertion(assertion, trace);
@@ -137,6 +146,49 @@ public class Logic2VampireLanguageMapper {
137 return new TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace>(specification, trace); 146 return new TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace>(specification, trace);
138 } 147 }
139 148
149 public void toTrace(final Iterable<Relation> relations, final Logic2VampireLanguageMapperTrace trace) {
150 final List<VLSVariable> vars = CollectionLiterals.<VLSVariable>newArrayList();
151 for (final Relation rel : relations) {
152 {
153 final String[] nameArray = rel.getName().split(" ");
154 String relNameVar = "";
155 int _length = nameArray.length;
156 boolean _equals = (_length == 3);
157 if (_equals) {
158 relNameVar = this.support.toIDMultiple(nameArray[0], nameArray[2]);
159 } else {
160 relNameVar = rel.getName();
161 }
162 final String relName = relNameVar;
163 final RelationDefinition relDef = ((RelationDefinition) rel);
164 int _length_1 = ((Object[])Conversions.unwrapArray(rel.getParameters(), Object.class)).length;
165 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _length_1, true);
166 for (final Integer i : _doubleDotLessThan) {
167 {
168 VLSVariable _createVLSVariable = this.factory.createVLSVariable();
169 final Procedure1<VLSVariable> _function = (VLSVariable it) -> {
170 it.setName(this.support.toIDMultiple("V", i.toString()));
171 };
172 final VLSVariable v = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable, _function);
173 vars.add(v);
174 }
175 }
176 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
177 final Procedure1<VLSFunction> _function = (VLSFunction it) -> {
178 it.setConstant(this.support.toIDMultiple("r", relName));
179 for (final VLSVariable v : vars) {
180 EList<VLSTerm> _terms = it.getTerms();
181 VLSVariable _duplicate = this.support.duplicate(v);
182 _terms.add(_duplicate);
183 }
184 };
185 final VLSFunction relFunc = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function);
186 trace.relDef2Predicate.put(relDef, relFunc);
187 trace.predicate2RelDef.put(relFunc, relDef);
188 }
189 }
190 }
191
140 protected VLSTerm _transformTypeReference(final BoolTypeReference boolTypeReference, final Logic2VampireLanguageMapperTrace trace) { 192 protected VLSTerm _transformTypeReference(final BoolTypeReference boolTypeReference, final Logic2VampireLanguageMapperTrace trace) {
141 return null; 193 return null;
142 } 194 }
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
index c175c72a..4c14e93e 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
@@ -176,8 +176,6 @@ public class Logic2VampireLanguageMapper_RelationMapper {
176 } 176 }
177 }; 177 };
178 final VLSFunction rel = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_4); 178 final VLSFunction rel = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_4);
179 trace.relDef2Predicate.put(r, rel);
180 trace.predicate2RelDef.put(rel, r);
181 it_2.setLeft(this.support.duplicate(rel)); 179 it_2.setLeft(this.support.duplicate(rel));
182 it_2.setRight(compDefn); 180 it_2.setRight(compDefn);
183 }; 181 };
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.java
index 4fbf7291..9fb23c71 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Vampire2LogicMapper.java
@@ -34,7 +34,8 @@ public class Vampire2LogicMapper {
34 Statistics _createStatistics = this.resultFactory.createStatistics(); 34 Statistics _createStatistics = this.resultFactory.createStatistics();
35 final Procedure1<Statistics> _function = (Statistics it) -> { 35 final Procedure1<Statistics> _function = (Statistics it) -> {
36 long _solverTime = solution.getSolverTime(); 36 long _solverTime = solution.getSolverTime();
37 it.setTransformationTime(((int) _solverTime)); 37 it.setSolverTime(((int) _solverTime));
38 it.setTransformationTime(((int) transformationTime));
38 }; 39 };
39 return ObjectExtensions.<Statistics>operator_doubleArrow(_createStatistics, _function); 40 return ObjectExtensions.<Statistics>operator_doubleArrow(_createStatistics, _function);
40 } 41 }
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java
index 0c8b0013..a1f19410 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java
@@ -25,7 +25,7 @@ public class VampireHandler {
25 final String VAMPNAME = "vampire.exe"; 25 final String VAMPNAME = "vampire.exe";
26 final String TEMPNAME = "TEMP.tptp"; 26 final String TEMPNAME = "TEMP.tptp";
27 final String OPTION = " --mode casc_sat -t 300 "; 27 final String OPTION = " --mode casc_sat -t 300 ";
28 final String SOLNNAME = (("_solution" + Integer.valueOf(configuration.typeScopes.maxNewElements)) + ".tptp"); 28 final String SOLNNAME = (((("solution" + Integer.valueOf(configuration.typeScopes.maxNewElements)) + "_") + Integer.valueOf(configuration.iteration)) + ".tptp");
29 final String PATH = "C:/cygwin64/bin"; 29 final String PATH = "C:/cygwin64/bin";
30 final URI wsURI = workspace.getWorkspaceURI(); 30 final URI wsURI = workspace.getWorkspaceURI();
31 final String tempLoc = (wsURI + TEMPNAME); 31 final String tempLoc = (wsURI + TEMPNAME);
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
index 9e50006e..b786abfb 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF
@@ -6,7 +6,13 @@ Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: . 6Bundle-ClassPath: .
7Bundle-Vendor: %providerName 7Bundle-Vendor: %providerName
8Bundle-Localization: plugin 8Bundle-Localization: plugin
9Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, 9Export-Package: ca.mcgill.ecse.dslreasoner.vamipre.yakindumm,
10 ca.mcgill.ecse.dslreasoner.vamipre.yakindumm.impl,
11 ca.mcgill.ecse.dslreasoner.vamipre.yakindumm.util,
12 ca.mcgill.ecse.dslreasoner.vampire.queries,
13 ca.mcgill.ecse.dslreasoner.vampire.yakindumm,
14 ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl,
15 ca.mcgill.ecse.dslreasoner.vampire.yakindumm.util,
10 yakindumm, 16 yakindumm,
11 yakindumm.impl, 17 yakindumm.impl,
12 yakindumm.util, 18 yakindumm.util,
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
index 6a9aee5e..fa271bd3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
@@ -1,15 +1,13 @@
1<?xml version="1.0" encoding="UTF-8"?><plugin> 1<?xml version="1.0" encoding="UTF-8"?><plugin>
2 <extension point="org.eclipse.emf.ecore.generated_package"> 2 <extension point="org.eclipse.emf.ecore.generated_package">
3 <!-- @generated yakindu_simplified --> 3 <!-- @generated xGen -->
4 <package class="yakindumm.YakindummPackage" genModel="initialModels/yakindu/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/> 4 <package class="ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage" genModel="initialModels/yakindu/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/>
5 </extension>
6 <extension point="org.eclipse.emf.ecore.generated_package">
7 <!-- @generated yakindu_simplified -->
8 <package class="yakindumm.yakindumm.YakindummPackage" genModel="initialModels/yakindu/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/>
9 </extension> 5 </extension>
10 <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> 6 <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
11 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns"> 7 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns">
12 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/> 8 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/>
9 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.rootElements"/>
10 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.parent"/>
13 </group> 11 </group>
14 </extension> 12 </extension>
15</plugin> 13</plugin>
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
index 057bcf12..cc7f4809 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend
@@ -1,10 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse 1package ca.mcgill.ecse.dslreasoner.vampire.icse
2 2
3import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns 3import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
7import functionalarchitecture.FunctionalarchitecturePackage
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel 10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
@@ -12,9 +12,13 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult 12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
13import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore 13import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
14import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic 14import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
15import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic 16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
16import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 17import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
17import java.io.PrintWriter 18import java.io.PrintWriter
19import java.text.SimpleDateFormat
20import java.time.LocalDate
21import java.util.Date
18import org.eclipse.emf.ecore.resource.Resource 22import org.eclipse.emf.ecore.resource.Resource
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 23import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20 24
@@ -26,8 +30,12 @@ class YakinduTest {
26 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic 30 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
27 31
28 // Workspace setup 32 // Workspace setup
33 val Date date = new Date(System.currentTimeMillis)
34 val SimpleDateFormat format = new SimpleDateFormat("MMdd-HHmmss");
35 val formattedDate = format.format(date)
36
29 val inputs = new FileSystemWorkspace('''initialModels/''', "") 37 val inputs = new FileSystemWorkspace('''initialModels/''', "")
30 val workspace = new FileSystemWorkspace('''output/YakinduTest/''', "") 38 val workspace = new FileSystemWorkspace('''output/YakinduTest/''' + formattedDate + '''/''', "")
31 workspace.initAndClear 39 workspace.initAndClear
32 40
33 // Logicproblem writing setup 41 // Logicproblem writing setup
@@ -37,12 +45,12 @@ class YakinduTest {
37 45
38 println("Input and output workspaces are created") 46 println("Input and output workspaces are created")
39 47
40// val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE) 48 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE)
41 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) 49 val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi")
42// val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi") 50 val queries = GeneralTest.loadQueries(metamodel, Patterns.instance)
43 val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi") 51// val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
44// val queries = GeneralTest.loadQueries(metamodel, YakinduPatterns.instance) 52// val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi")
45 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) 53// val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
46// val queries = null 54// val queries = null
47 println("DSL loaded") 55 println("DSL loaded")
48 56
@@ -50,40 +58,42 @@ class YakinduTest {
50 var START = 10 58 var START = 10
51 var INC = 20 59 var INC = 20
52 var REPS = 1 60 var REPS = 1
53 61
54 val EXACT = -1 62 val EXACT = 50
55 if (EXACT!= -1) { 63 if (EXACT != -1) {
56 MAX = EXACT 64 MAX = EXACT
57 START = EXACT 65 START = EXACT
58 INC = 1 66 INC = 1
59 REPS = 5 67 REPS = 3
60 } 68 }
61 69
62 var writer = new PrintWriter(workspace.workspaceURI + "//yakinduStats.csv") 70 var writer = new PrintWriter(workspace.workspaceURI + "//_yakinduStats.csv")
63 writer.append("size,") 71 writer.append("size,")
64 for (var x = 0; x < REPS; x++) { 72 for (var x = 0; x < REPS; x++) {
65 writer.append("t" + x + ",") 73 writer.append("tTransf" + x + "," + "tSolv" + x + ",")
66 } 74 }
67 writer.append("avg\n") 75 writer.append("medSolv,medTransf\n")
68 var totalTime = 0.0 76 var solverTimes = newArrayList
69 var totFound = 0.0 77 var transformationTimes = newArrayList
70 var modelFound = true 78 var modelFound = true
71 var LogicResult solution = null 79 var LogicResult solution = null
72 for (var i = START; i <= MAX; i += INC) { 80 for (var i = START; i <= MAX; i += INC) {
73 val num = (i - START) / INC 81 val num = (i - START) / INC
74 print("Generation " + num + ": SIZE=" + i + " Attempt: ") 82 print("Generation " + num + ": SIZE=" + i + " Attempt: ")
75 writer.append(i + ",") 83 writer.append(i + ",")
76 totalTime = 0.0 84 solverTimes.clear
77 totFound = 0.0 85 transformationTimes.clear
78 modelFound = true 86 modelFound = true
79 for (var j = 0; j < REPS; j++) { 87 for (var j = 0; j < REPS; j++) {
80 88
81 print(j) 89 print(j)
82 90
83 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) 91 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration())
84 var problem = modelGenerationProblem.output 92 var modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel)
85 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output 93 var validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem,
86// problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output 94 new Viatra2LogicConfiguration)
95
96 var problem = validModelExtensionProblem.output
87 workspace.writeModel(problem, "Yakindu.logicproblem") 97 workspace.writeModel(problem, "Yakindu.logicproblem")
88 98
89// println("Problem created") 99// println("Problem created")
@@ -110,9 +120,11 @@ class YakinduTest {
110 // Define Config File 120 // Define Config File
111 val size = i 121 val size = i
112 val inc = INC 122 val inc = INC
123 val iter = j
113 val vampireConfig = new VampireSolverConfiguration => [ 124 val vampireConfig = new VampireSolverConfiguration => [
114 // add configuration things, in config file first 125 // add configuration things, in config file first
115 it.documentationLevel = DocumentationLevel::FULL 126 it.documentationLevel = DocumentationLevel::FULL
127 it.iteration = iter
116 128
117 it.typeScopes.minNewElements = size - inc 129 it.typeScopes.minNewElements = size - inc
118 it.typeScopes.maxNewElements = size 130 it.typeScopes.maxNewElements = size
@@ -132,11 +144,12 @@ class YakinduTest {
132// ].isEmpty 144// ].isEmpty
133// 145//
134// if (modelFound) { 146// if (modelFound) {
135 val time = solution.statistics.transformationTime / 1000.0 147 val tTime = solution.statistics.transformationTime / 1000.0
136 writer.append(time + ",") 148 val sTime = solution.statistics.solverTime / 1000.0
137 print("(" + time + ")..") 149 writer.append(tTime + "," + sTime + ",")
138 totalTime += time 150 print("(" + tTime + "/" + sTime + "s)..")
139 totFound += 1 151 solverTimes.add(sTime)
152 transformationTimes.add(tTime)
140// } else { 153// } else {
141// writer.append("MNF" + ",") 154// writer.append("MNF" + ",")
142//// print("MNF") 155//// print("MNF")
@@ -144,55 +157,19 @@ class YakinduTest {
144 // println("Problem solved") 157 // println("Problem solved")
145 // visualisation, see 158 // visualisation, see
146// var interpretations = reasoner.getInterpretations(solution as ModelResult) 159// var interpretations = reasoner.getInterpretations(solution as ModelResult)
147 /* interpretations.get(0) as VampireModelInterpretation
148 * println(ecore2Logic.IsAttributeValue(modelGenerationProblem.trace, )
149 * Literal(modelGenerationProblem.trace, ecore2Logic.allLiteralsInScope(modelGenerationProblem.trace).get(0) )
150 * )
151 * println((ecore2Logic.allAttributesInScope(modelGenerationProblem.trace)).get(0).EAttributeType)
152 print(interpretations.class)*/
153// for (interpretation : interpretations) { 160// for (interpretation : interpretations) {
154// val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace) 161// val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace)
155// workspace.writeModel(model, "model.xmi") 162// workspace.writeModel(model, "model.xmi")
156 /* val representation = im2pi.transform(modelGenerationProblem, model.eAllContents.toList, false)//solution.representation.get(0) // TODO: fix for multiple represenations
157 * if (representation instanceof PartialInterpretation) {
158 * val vis1 = new PartialInterpretation2Gml
159 * val gml = vis1.transform(representation)
160 * workspace.writeText("model.gml", gml)
161
162 * val vis2 = new GraphvizVisualiser
163 * val dot = vis2.visualiseConcretization(representation)
164 * dot.writeToFile(workspace, "model.png")
165 * } else {
166 * println("ERROR")
167 * }
168 look here: hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor*/
169// } 163// }
170 /*/
171 *
172 * reasoner = new AlloySolver
173 * val alloyConfig = new AlloySolverConfiguration => [
174 * it.typeScopes.maxNewElements = 7
175 * it.typeScopes.minNewElements = 3
176 * it.solutionScope.numberOfRequiredSolution = 1
177 * it.typeScopes.maxNewIntegers = 0
178 * it.documentationLevel = DocumentationLevel::NORMAL
179 * ]
180 * solution = reasoner.solve(problem, alloyConfig, workspace)
181 //*/
182 // /////////////////////////////////////////////////////
183// var totalTimeMin = (System.currentTimeMillis - startTime) / 60000 164// var totalTimeMin = (System.currentTimeMillis - startTime) / 60000
184// var totalTimeSec = ((System.currentTimeMillis - startTime) / 1000) % 60 165// var totalTimeSec = ((System.currentTimeMillis - startTime) / 1000) % 60
185// println("Problem solved") 166// println("Problem solved")
186// println("Time was: " + totalTimeMin + ":" + totalTimeSec) 167// println("Time was: " + totalTimeMin + ":" + totalTimeSec)
187 } 168 }
188 println() 169 println()
189 var avg = 0.0 170 var solverMed = solverTimes.sort.get(REPS/2)
190 if (totFound == 0) { 171 var transformationMed = transformationTimes.sort.get(REPS/2)
191 avg = -1 172 writer.append(solverMed.toString + "," + transformationMed.toString)
192 } else {
193 avg = totalTime / totFound
194 }
195 writer.append(avg.toString)
196 writer.append("\n") 173 writer.append("\n")
197 } 174 }
198 writer.close 175 writer.close
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
index 60679874..d9d6b881 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
@@ -9,4 +9,12 @@ pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
9} or { 9} or {
10 InformationLink.to(I,In); 10 InformationLink.to(I,In);
11 FunctionalInput.terminator(In,T); 11 FunctionalInput.terminator(In,T);
12}
13
14pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
15 FunctionalArchitectureModel.rootElements(Model, Root);
16}
17
18pattern parent(Func : Function, Par : Function) = {
19 Function.parent(Func, Par);
12} \ No newline at end of file 20} \ No newline at end of file
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
index 4880c751..1d9db781 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
index 8ad6dfed..15159cb7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
index 164e6c2f..69cbcc0a 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
index 46cad7ee..16a24539 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
index eeb7c77a..57a6fa02 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
index 616868a6..35c48de2 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
@@ -1,11 +1,11 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse; 1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2 2
3import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns;
4import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; 3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; 8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel;
8import functionalarchitecture.FunctionalarchitecturePackage;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; 10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
@@ -17,10 +17,15 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
17import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 17import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
18import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; 18import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
19import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; 19import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
20import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration;
21import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicTrace;
20import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; 22import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
21import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; 23import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
22import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; 24import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
23import java.io.PrintWriter; 25import java.io.PrintWriter;
26import java.text.SimpleDateFormat;
27import java.util.ArrayList;
28import java.util.Date;
24import java.util.Map; 29import java.util.Map;
25import org.eclipse.emf.common.util.EList; 30import org.eclipse.emf.common.util.EList;
26import org.eclipse.emf.common.util.URI; 31import org.eclipse.emf.common.util.URI;
@@ -28,8 +33,10 @@ import org.eclipse.emf.ecore.EObject;
28import org.eclipse.emf.ecore.resource.Resource; 33import org.eclipse.emf.ecore.resource.Resource;
29import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 34import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
30import org.eclipse.xtend2.lib.StringConcatenation; 35import org.eclipse.xtend2.lib.StringConcatenation;
36import org.eclipse.xtext.xbase.lib.CollectionLiterals;
31import org.eclipse.xtext.xbase.lib.Exceptions; 37import org.eclipse.xtext.xbase.lib.Exceptions;
32import org.eclipse.xtext.xbase.lib.InputOutput; 38import org.eclipse.xtext.xbase.lib.InputOutput;
39import org.eclipse.xtext.xbase.lib.IterableExtensions;
33import org.eclipse.xtext.xbase.lib.ObjectExtensions; 40import org.eclipse.xtext.xbase.lib.ObjectExtensions;
34import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; 41import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
35 42
@@ -41,43 +48,51 @@ public class YakinduTest {
41 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); 48 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic);
42 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); 49 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic);
43 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); 50 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic();
51 long _currentTimeMillis = System.currentTimeMillis();
52 final Date date = new Date(_currentTimeMillis);
53 final SimpleDateFormat format = new SimpleDateFormat("MMdd-HHmmss");
54 final String formattedDate = format.format(date);
44 StringConcatenation _builder = new StringConcatenation(); 55 StringConcatenation _builder = new StringConcatenation();
45 _builder.append("initialModels/"); 56 _builder.append("initialModels/");
46 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); 57 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
47 StringConcatenation _builder_1 = new StringConcatenation(); 58 StringConcatenation _builder_1 = new StringConcatenation();
48 _builder_1.append("output/YakinduTest/"); 59 _builder_1.append("output/YakinduTest/");
49 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); 60 String _plus = (_builder_1.toString() + formattedDate);
61 StringConcatenation _builder_2 = new StringConcatenation();
62 _builder_2.append("/");
63 String _plus_1 = (_plus + _builder_2);
64 final FileSystemWorkspace workspace = new FileSystemWorkspace(_plus_1, "");
50 workspace.initAndClear(); 65 workspace.initAndClear();
51 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; 66 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
52 final Map<String, Object> map = reg.getExtensionToFactoryMap(); 67 final Map<String, Object> map = reg.getExtensionToFactoryMap();
53 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); 68 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
54 map.put("logicproblem", _xMIResourceFactoryImpl); 69 map.put("logicproblem", _xMIResourceFactoryImpl);
55 InputOutput.<String>println("Input and output workspaces are created"); 70 InputOutput.<String>println("Input and output workspaces are created");
56 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); 71 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE);
57 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi"); 72 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi");
58 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); 73 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, Patterns.instance());
59 InputOutput.<String>println("DSL loaded"); 74 InputOutput.<String>println("DSL loaded");
60 int MAX = 150; 75 int MAX = 150;
61 int START = 10; 76 int START = 10;
62 int INC = 20; 77 int INC = 20;
63 int REPS = 1; 78 int REPS = 1;
64 final int EXACT = (-1); 79 final int EXACT = 50;
65 if ((EXACT != (-1))) { 80 if ((EXACT != (-1))) {
66 MAX = EXACT; 81 MAX = EXACT;
67 START = EXACT; 82 START = EXACT;
68 INC = 1; 83 INC = 1;
69 REPS = 5; 84 REPS = 3;
70 } 85 }
71 URI _workspaceURI = workspace.getWorkspaceURI(); 86 URI _workspaceURI = workspace.getWorkspaceURI();
72 String _plus = (_workspaceURI + "//yakinduStats.csv"); 87 String _plus_2 = (_workspaceURI + "//_yakinduStats.csv");
73 PrintWriter writer = new PrintWriter(_plus); 88 PrintWriter writer = new PrintWriter(_plus_2);
74 writer.append("size,"); 89 writer.append("size,");
75 for (int x = 0; (x < REPS); x++) { 90 for (int x = 0; (x < REPS); x++) {
76 writer.append((("t" + Integer.valueOf(x)) + ",")); 91 writer.append(((((("tTransf" + Integer.valueOf(x)) + ",") + "tSolv") + Integer.valueOf(x)) + ","));
77 } 92 }
78 writer.append("avg\n"); 93 writer.append("medSolv,medTransf\n");
79 double totalTime = 0.0; 94 ArrayList<Double> solverTimes = CollectionLiterals.<Double>newArrayList();
80 double totFound = 0.0; 95 ArrayList<Double> transformationTimes = CollectionLiterals.<Double>newArrayList();
81 boolean modelFound = true; 96 boolean modelFound = true;
82 LogicResult solution = null; 97 LogicResult solution = null;
83 { 98 {
@@ -87,18 +102,20 @@ public class YakinduTest {
87 { 102 {
88 final int num = ((i - START) / INC); 103 final int num = ((i - START) / INC);
89 InputOutput.<String>print((((("Generation " + Integer.valueOf(num)) + ": SIZE=") + Integer.valueOf(i)) + " Attempt: ")); 104 InputOutput.<String>print((((("Generation " + Integer.valueOf(num)) + ": SIZE=") + Integer.valueOf(i)) + " Attempt: "));
90 String _plus_1 = (Integer.valueOf(i) + ","); 105 String _plus_3 = (Integer.valueOf(i) + ",");
91 writer.append(_plus_1); 106 writer.append(_plus_3);
92 totalTime = 0.0; 107 solverTimes.clear();
93 totFound = 0.0; 108 transformationTimes.clear();
94 modelFound = true; 109 modelFound = true;
95 for (int j = 0; (j < REPS); j++) { 110 for (int j = 0; (j < REPS); j++) {
96 { 111 {
97 InputOutput.<Integer>print(Integer.valueOf(j)); 112 InputOutput.<Integer>print(Integer.valueOf(j));
98 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); 113 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
99 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); 114 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
100 LogicProblem problem = modelGenerationProblem.getOutput(); 115 TracedOutput<LogicProblem, Ecore2Logic_Trace> modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel);
101 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); 116 Viatra2LogicConfiguration _viatra2LogicConfiguration = new Viatra2LogicConfiguration();
117 TracedOutput<LogicProblem, Viatra2LogicTrace> validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem, _viatra2LogicConfiguration);
118 LogicProblem problem = validModelExtensionProblem.getOutput();
102 workspace.writeModel(problem, "Yakindu.logicproblem"); 119 workspace.writeModel(problem, "Yakindu.logicproblem");
103 long startTime = System.currentTimeMillis(); 120 long startTime = System.currentTimeMillis();
104 VampireSolver reasoner = null; 121 VampireSolver reasoner = null;
@@ -106,9 +123,11 @@ public class YakinduTest {
106 reasoner = _vampireSolver; 123 reasoner = _vampireSolver;
107 final int size = i; 124 final int size = i;
108 final int inc = INC; 125 final int inc = INC;
126 final int iter = j;
109 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 127 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
110 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 128 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
111 it.documentationLevel = DocumentationLevel.FULL; 129 it.documentationLevel = DocumentationLevel.FULL;
130 it.iteration = iter;
112 it.typeScopes.minNewElements = (size - inc); 131 it.typeScopes.minNewElements = (size - inc);
113 it.typeScopes.maxNewElements = size; 132 it.typeScopes.maxNewElements = size;
114 it.contCycleLevel = 5; 133 it.contCycleLevel = 5;
@@ -119,24 +138,26 @@ public class YakinduTest {
119 Object _get = ((ModelResult) solution).getRepresentation().get(0); 138 Object _get = ((ModelResult) solution).getRepresentation().get(0);
120 final VampireModel soln = ((VampireModel) _get); 139 final VampireModel soln = ((VampireModel) _get);
121 int _transformationTime = solution.getStatistics().getTransformationTime(); 140 int _transformationTime = solution.getStatistics().getTransformationTime();
122 final double time = (_transformationTime / 1000.0); 141 final double tTime = (_transformationTime / 1000.0);
123 String _plus_2 = (Double.valueOf(time) + ","); 142 int _solverTime = solution.getStatistics().getSolverTime();
124 writer.append(_plus_2); 143 final double sTime = (_solverTime / 1000.0);
125 InputOutput.<String>print((("(" + Double.valueOf(time)) + ")..")); 144 String _plus_4 = (Double.valueOf(tTime) + ",");
126 double _talTime = totalTime; 145 String _plus_5 = (_plus_4 + Double.valueOf(sTime));
127 totalTime = (_talTime + time); 146 String _plus_6 = (_plus_5 + ",");
128 double _tFound = totFound; 147 writer.append(_plus_6);
129 totFound = (_tFound + 1); 148 InputOutput.<String>print((((("(" + Double.valueOf(tTime)) + "/") + Double.valueOf(sTime)) + "s).."));
149 solverTimes.add(Double.valueOf(sTime));
150 transformationTimes.add(Double.valueOf(tTime));
130 } 151 }
131 } 152 }
132 InputOutput.println(); 153 InputOutput.println();
133 double avg = 0.0; 154 Double solverMed = IterableExtensions.<Double>sort(solverTimes).get((REPS / 2));
134 if ((totFound == 0)) { 155 Double transformationMed = IterableExtensions.<Double>sort(transformationTimes).get((REPS / 2));
135 avg = (-1); 156 String _string = solverMed.toString();
136 } else { 157 String _plus_4 = (_string + ",");
137 avg = (totalTime / totFound); 158 String _string_1 = transformationMed.toString();
138 } 159 String _plus_5 = (_plus_4 + _string_1);
139 writer.append(Double.valueOf(avg).toString()); 160 writer.append(_plus_5);
140 writer.append("\n"); 161 writer.append("\n");
141 } 162 }
142 int _i = i; 163 int _i = i;
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
index e9a1a8db..74f8e73f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
index 39d9c161..68b3fd77 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
index effd204e..fc4464b3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
Binary files differ