aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers')
-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
23 files changed, 141 insertions, 62 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);