aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend101
1 files changed, 51 insertions, 50 deletions
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 cbe53bff..ee802a99 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
@@ -7,6 +7,7 @@ import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguage
7import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper 7import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper
8import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler 8import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler
9import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage 9import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException 12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration 13import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
@@ -14,80 +15,81 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult 15import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
15import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace 16import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
16 17
17class VampireSolver extends LogicReasoner{ 18class VampireSolver extends LogicReasoner {
18 19
19 new() { 20 new() {
20 VampireLanguagePackage.eINSTANCE.eClass 21 VampireLanguagePackage.eINSTANCE.eClass
21 val x = new VampireLanguageStandaloneSetupGenerated 22 val x = new VampireLanguageStandaloneSetupGenerated
22 VampireLanguageStandaloneSetup::doSetup() 23 VampireLanguageStandaloneSetup::doSetup()
23 } 24 }
24 25
25 val Logic2VampireLanguageMapper forwardMapper = new Logic2VampireLanguageMapper(new Logic2VampireLanguageMapper_TypeMapper_FilteredTypes) 26 val Logic2VampireLanguageMapper forwardMapper = new Logic2VampireLanguageMapper(
26 val Vampire2LogicMapper backwardMapper = new Vampire2LogicMapper 27 new Logic2VampireLanguageMapper_TypeMapper_FilteredTypes)
27 val VampireHandler handler = new VampireHandler 28 val Vampire2LogicMapper backwardMapper = new Vampire2LogicMapper
28 29 val VampireHandler handler = new VampireHandler
29 30
30 val fileName = "vampireProblem.tptp" 31 val fileName = "vampireProblem.tptp"
31 32
32 override solve(LogicProblem problem, LogicSolverConfiguration config, ReasonerWorkspace workspace) throws LogicReasonerException { 33 override solve(LogicProblem problem, LogicSolverConfiguration config,
34 ReasonerWorkspace workspace) throws LogicReasonerException {
33 val vampireConfig = config.asConfig 35 val vampireConfig = config.asConfig
34 36
35 // Start: Logic -> Vampire mapping 37 // Start: Logic -> Vampire mapping
36 val transformationStart = System.currentTimeMillis 38 val transformationStart = System.currentTimeMillis
37 //TODO 39 // TODO
38 val result = forwardMapper.transformProblem(problem,vampireConfig) 40 val result = forwardMapper.transformProblem(problem, vampireConfig)
39 val vampireProblem = result.output 41 val vampireProblem = result.output
40 val forwardTrace = result.trace 42 val forwardTrace = result.trace
41 43
42 var String fileURI = null; 44 var String fileURI = null;
43 var String vampireCode = null; 45 var String vampireCode = null;
44 vampireCode = workspace.writeModelToString(vampireProblem,fileName) 46 vampireCode = workspace.writeModelToString(vampireProblem, fileName)
45 if(vampireConfig.writeToFile) { 47
46 fileURI = workspace.writeModel(vampireProblem,fileName).toFileString 48 val writeFile = (
49 vampireConfig.documentationLevel === DocumentationLevel::NORMAL ||
50 vampireConfig.documentationLevel === DocumentationLevel::FULL)
51 if (writeFile) {
52 fileURI = workspace.writeModel(vampireProblem, fileName).toFileString
47 } 53 }
48
49 //Result as String
50 54
51 55 // Result as String
52 val transformationTime = System.currentTimeMillis - transformationStart 56 val transformationTime = System.currentTimeMillis - transformationStart
53 // Finish: Logic -> Vampire mapping 57 // Finish: Logic -> Vampire mapping
54
55
56 /* 58 /*
57 // Start: Solving Alloy problem 59 * // Start: Solving Alloy problem
58 val solverStart = System.currentTimeMillis 60 * val solverStart = System.currentTimeMillis
59 //Calling Solver (Currently Manually) 61 * //Calling Solver (Currently Manually)
60 val result2 = handler.callSolver(vampireProblem,workspace,vampireConfig,vampireCode) 62 * val result2 = handler.callSolver(vampireProblem,workspace,vampireConfig,vampireCode)
61// val result2 = null 63 * // val result2 = null
62 //TODO 64 * //TODO
63 //Backwards Mapper 65 * //Backwards Mapper
64 val logicResult = backwardMapper.transformOutput(problem,config.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime) 66 * val logicResult = backwardMapper.transformOutput(problem,config.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime)
65 67 *
66 val solverFinish = System.currentTimeMillis-solverStart 68 * val solverFinish = System.currentTimeMillis-solverStart
67 // Finish: Solving Alloy problem 69 * // Finish: Solving Alloy problem
68 70 *
69 if(vampireConfig.writeToFile) workspace.deactivateModel(fileName) 71 * if(vampireConfig.writeToFile) workspace.deactivateModel(fileName)
70 72 *
71 return logicResult 73 * return logicResult
72 74 *
73 /*/ 75 /*/
74 return null // for now 76 return null // for now
75 //*/ 77 // */
76 } 78 }
77 79
78 def asConfig(LogicSolverConfiguration configuration){ 80 def asConfig(LogicSolverConfiguration configuration) {
79 if(configuration instanceof VampireSolverConfiguration) { 81 if (configuration instanceof VampireSolverConfiguration) {
80 return configuration 82 return configuration
81 } else { 83 } else {
82 throw new IllegalArgumentException('''The configuration have to be an «VampireSolverConfiguration.simpleName»!''') 84 throw new IllegalArgumentException('''The configuration have to be an «VampireSolverConfiguration.simpleName»!''')
83 } 85 }
84 } 86 }
85 87
86// /* 88// /*
87// * not for now 89// * not for now
88// * 90// *
89 override getInterpretations(ModelResult modelResult) { 91 override getInterpretations(ModelResult modelResult) {
90 //val answers = (modelResult.representation as MonitoredAlloySolution).aswers.map[key] 92 // val answers = (modelResult.representation as MonitoredAlloySolution).aswers.map[key]
91// val sols = modelResult.representation// as List<A4Solution> 93// val sols = modelResult.representation// as List<A4Solution>
92// //val res = answers.map 94// //val res = answers.map
93// sols.map[ 95// sols.map[
@@ -98,7 +100,6 @@ class VampireSolver extends LogicReasoner{
98// modelResult.trace as Logic2AlloyLanguageMapperTrace 100// modelResult.trace as Logic2AlloyLanguageMapperTrace
99// ) 101// )
100// ] 102// ]
101 } 103 }
102// */ 104// */
103 105}
104} \ No newline at end of file