diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-10-08 03:00:08 -0400 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-10-08 03:00:08 -0400 |
commit | f63a94c06268b5233264436cc538062f1f7b01bc (patch) | |
tree | cbdc3dcdb34ecbeaba24991c36c34205df79e32e | |
parent | VAMPIRE: Implement Vampire measurement code (diff) | |
download | VIATRA-Generator-f63a94c06268b5233264436cc538062f1f7b01bc.tar.gz VIATRA-Generator-f63a94c06268b5233264436cc538062f1f7b01bc.tar.zst VIATRA-Generator-f63a94c06268b5233264436cc538062f1f7b01bc.zip |
VAMPIRE: fix bug in transformation, further implement measurement code
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; | |||
54 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; | 54 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; |
55 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; | 55 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable; |
56 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDeclarationImpl; | 56 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDeclarationImpl; |
57 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDefinitionImpl; | ||
57 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 58 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
58 | import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; | 59 | import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; |
59 | import java.util.Arrays; | 60 | import java.util.Arrays; |
@@ -65,6 +66,9 @@ import java.util.function.Consumer; | |||
65 | import org.eclipse.emf.common.util.EList; | 66 | import org.eclipse.emf.common.util.EList; |
66 | import org.eclipse.xtend.lib.annotations.AccessorType; | 67 | import org.eclipse.xtend.lib.annotations.AccessorType; |
67 | import org.eclipse.xtend.lib.annotations.Accessors; | 68 | import org.eclipse.xtend.lib.annotations.Accessors; |
69 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
70 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
71 | import org.eclipse.xtext.xbase.lib.ExclusiveRange; | ||
68 | import org.eclipse.xtext.xbase.lib.Extension; | 72 | import org.eclipse.xtext.xbase.lib.Extension; |
69 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | 73 | import org.eclipse.xtext.xbase.lib.Functions.Function1; |
70 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | 74 | import 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 | |||
6 | Bundle-ClassPath: . | 6 | Bundle-ClassPath: . |
7 | Bundle-Vendor: %providerName | 7 | Bundle-Vendor: %providerName |
8 | Bundle-Localization: plugin | 8 | Bundle-Localization: plugin |
9 | Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, | 9 | Export-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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns | 3 | import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns |
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | 4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver |
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
6 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage | ||
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel | 7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel |
7 | import functionalarchitecture.FunctionalarchitecturePackage | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | 9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration |
10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
@@ -12,9 +12,13 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | |||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | 12 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult |
13 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | 13 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore |
14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | 14 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic |
15 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
15 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | 16 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic |
16 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | 17 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace |
17 | import java.io.PrintWriter | 18 | import java.io.PrintWriter |
19 | import java.text.SimpleDateFormat | ||
20 | import java.time.LocalDate | ||
21 | import java.util.Date | ||
18 | import org.eclipse.emf.ecore.resource.Resource | 22 | import org.eclipse.emf.ecore.resource.Resource |
19 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 23 | import 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 | |||
14 | pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = { | ||
15 | FunctionalArchitectureModel.rootElements(Model, Root); | ||
16 | } | ||
17 | |||
18 | pattern 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 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | 3 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; |
4 | import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; |
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
7 | import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; | 8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; |
8 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | 9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; |
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | 10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; |
11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | 11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; |
@@ -17,10 +17,15 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | |||
17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; |
18 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | 18 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; |
19 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | 19 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; |
20 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration; | ||
21 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicTrace; | ||
20 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | 22 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; |
21 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | 23 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; |
22 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | 24 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; |
23 | import java.io.PrintWriter; | 25 | import java.io.PrintWriter; |
26 | import java.text.SimpleDateFormat; | ||
27 | import java.util.ArrayList; | ||
28 | import java.util.Date; | ||
24 | import java.util.Map; | 29 | import java.util.Map; |
25 | import org.eclipse.emf.common.util.EList; | 30 | import org.eclipse.emf.common.util.EList; |
26 | import org.eclipse.emf.common.util.URI; | 31 | import org.eclipse.emf.common.util.URI; |
@@ -28,8 +33,10 @@ import org.eclipse.emf.ecore.EObject; | |||
28 | import org.eclipse.emf.ecore.resource.Resource; | 33 | import org.eclipse.emf.ecore.resource.Resource; |
29 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 34 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; |
30 | import org.eclipse.xtend2.lib.StringConcatenation; | 35 | import org.eclipse.xtend2.lib.StringConcatenation; |
36 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
31 | import org.eclipse.xtext.xbase.lib.Exceptions; | 37 | import org.eclipse.xtext.xbase.lib.Exceptions; |
32 | import org.eclipse.xtext.xbase.lib.InputOutput; | 38 | import org.eclipse.xtext.xbase.lib.InputOutput; |
39 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
33 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | 40 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; |
34 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | 41 | import 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 | |||