diff options
author | 2019-08-29 06:26:02 -0400 | |
---|---|---|
committer | 2020-06-07 19:41:39 -0400 | |
commit | 15602c7cfbfc80b8c826855b94c9f9582650dd21 (patch) | |
tree | 3f90d5812e68215838efd52372bcc26df88b9033 /Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner | |
parent | VAMPIRE: integrate local Vampire executeable #32 (diff) | |
download | VIATRA-Generator-15602c7cfbfc80b8c826855b94c9f9582650dd21.tar.gz VIATRA-Generator-15602c7cfbfc80b8c826855b94c9f9582650dd21.tar.zst VIATRA-Generator-15602c7cfbfc80b8c826855b94c9f9582650dd21.zip |
VAMPIRE: adapt grammar to Vampire solution + get model from text
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner')
21 files changed, 280 insertions, 290 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 6bb49080..1fd40801 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 | |||
@@ -6,6 +6,8 @@ import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguage | |||
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper |
7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler | 7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler |
8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage | 8 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage |
9 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel | ||
10 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | 12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner |
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException | 13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasonerException |
@@ -13,7 +15,7 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration | |||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult |
15 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | 17 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace |
16 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_TypeMapper | 18 | import org.eclipse.emf.ecore.resource.Resource |
17 | 19 | ||
18 | class VampireSolver extends LogicReasoner { | 20 | class VampireSolver extends LogicReasoner { |
19 | 21 | ||
@@ -55,6 +57,16 @@ class VampireSolver extends LogicReasoner { | |||
55 | if (writeFile) { | 57 | if (writeFile) { |
56 | fileURI = workspace.writeModel(vampireProblem, fileName).toFileString | 58 | fileURI = workspace.writeModel(vampireProblem, fileName).toFileString |
57 | } | 59 | } |
60 | |||
61 | |||
62 | |||
63 | // Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("tptp", new VampireLanguageFactoryImpl) | ||
64 | //// val Resource resource = Resource. | ||
65 | //// Resource.getResource(wsURI+"problem.tptp") as Resource | ||
66 | //// resource | ||
67 | // val model = workspace.readModel(VampireModel, "problem.tptp").eResource.contents | ||
68 | // println(model) | ||
69 | |||
58 | 70 | ||
59 | // Result as String | 71 | // Result as String |
60 | val transformationTime = System.currentTimeMillis - transformationStart | 72 | val transformationTime = System.currentTimeMillis - transformationStart |
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 13db3c99..a2449fc0 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 | |||
@@ -61,7 +61,7 @@ class Logic2VampireLanguageMapper { | |||
61 | // create model bases | 61 | // create model bases |
62 | // TODO | 62 | // TODO |
63 | val initialComment = createVLSComment => [ | 63 | val initialComment = createVLSComment => [ |
64 | it.comment = "This is an initial Test Comment" | 64 | it.comment = "%This is an initial Test Comment" |
65 | ] | 65 | ] |
66 | 66 | ||
67 | val specification = createVampireModel => [ | 67 | val specification = createVampireModel => [ |
@@ -163,10 +163,10 @@ class Logic2VampireLanguageMapper { | |||
163 | createVLSInt => [it.value = literal.value.toString()] | 163 | createVLSInt => [it.value = literal.value.toString()] |
164 | } | 164 | } |
165 | 165 | ||
166 | def dispatch protected VLSTerm transformTerm(RealLiteral literal, Logic2VampireLanguageMapperTrace trace, | 166 | // def dispatch protected VLSTerm transformTerm(RealLiteral literal, Logic2VampireLanguageMapperTrace trace, |
167 | Map<Variable, VLSVariable> variables) { | 167 | // Map<Variable, VLSVariable> variables) { |
168 | createVLSReal => [it.value = literal.value.toString()] | 168 | // createVLSReal => [it.value = literal.value.toString()] |
169 | } | 169 | // } |
170 | 170 | ||
171 | def dispatch protected VLSTerm transformTerm(Not not, Logic2VampireLanguageMapperTrace trace, | 171 | def dispatch protected VLSTerm transformTerm(Not not, Logic2VampireLanguageMapperTrace trace, |
172 | Map<Variable, VLSVariable> variables) { | 172 | Map<Variable, VLSVariable> variables) { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend index 93c28e7c..c79003bd 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.xtend | |||
@@ -189,7 +189,7 @@ class Logic2VampireLanguageMapper_ContainmentMapper { | |||
189 | 189 | ||
190 | // STEP 2 CONT'D | 190 | // STEP 2 CONT'D |
191 | for (e : type2cont.entrySet) { | 191 | for (e : type2cont.entrySet) { |
192 | println(e.key + " " + e.value) | 192 | // println(e.key + " " + e.value) |
193 | val relFormula = createVLSFofFormula => [ | 193 | val relFormula = createVLSFofFormula => [ |
194 | it.name = support.toIDMultiple("containment_contained", e.key.constant.toString) | 194 | it.name = support.toIDMultiple("containment_contained", e.key.constant.toString) |
195 | it.fofRole = "axiom" | 195 | it.fofRole = "axiom" |
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 274396ee..f0426245 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 | |||
@@ -9,31 +9,35 @@ import java.util.List | |||
9 | import org.eclipse.emf.ecore.resource.Resource | 9 | import org.eclipse.emf.ecore.resource.Resource |
10 | import org.eclipse.xtend.lib.annotations.Data | 10 | import org.eclipse.xtend.lib.annotations.Data |
11 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl | 11 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl |
12 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl | ||
13 | |||
14 | class VampireSolverException extends Exception { | ||
15 | new(String s) { | ||
16 | super(s) | ||
17 | } | ||
18 | |||
19 | new(String s, Exception e) { | ||
20 | super(s, e) | ||
21 | } | ||
12 | 22 | ||
13 | class VampireSolverException extends Exception{ | ||
14 | new(String s) { super(s) } | ||
15 | new(String s, Exception e) { super(s,e) } | ||
16 | new(String s, List<String> errors, Exception e) { | 23 | new(String s, List<String> errors, Exception e) { |
17 | super(s + '\n' + errors.join('\n'), e) | 24 | super(s + '\n' + errors.join('\n'), e) |
18 | } | 25 | } |
19 | } | 26 | } |
20 | 27 | ||
21 | @Data class VampireSolutionModel{ | 28 | @Data class VampireSolutionModel { |
22 | // List<String> warnings | 29 | // List<String> warnings |
23 | // List<String> debugs | 30 | // List<String> debugs |
24 | // long kodkodTime | 31 | // long kodkodTime |
25 | // val List<Pair<A4Solution, Long>> aswers | 32 | // val List<Pair<A4Solution, Long>> aswers |
26 | // val boolean finishedBeforeTimeout | 33 | // val boolean finishedBeforeTimeout |
27 | |||
28 | |||
29 | } | 34 | } |
30 | 35 | ||
31 | class VampireHandler { | 36 | class VampireHandler { |
32 | 37 | ||
33 | //val fileName = "problem.als" | 38 | // val fileName = "problem.als" |
34 | |||
35 | public def callSolver(VampireModel problem, ReasonerWorkspace workspace, VampireSolverConfiguration configuration) { | 39 | public def callSolver(VampireModel problem, ReasonerWorkspace workspace, VampireSolverConfiguration configuration) { |
36 | 40 | ||
37 | val CMD = "cmd /c " | 41 | val CMD = "cmd /c " |
38 | val VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\" | 42 | val VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\" |
39 | val VAMPNAME = "vampire.exe" | 43 | val VAMPNAME = "vampire.exe" |
@@ -41,222 +45,213 @@ class VampireHandler { | |||
41 | val OPTION = " --mode casc_sat " | 45 | val OPTION = " --mode casc_sat " |
42 | val SOLNNAME = "solution.tptp" | 46 | val SOLNNAME = "solution.tptp" |
43 | val PATH = "C:/cygwin64/bin" | 47 | val PATH = "C:/cygwin64/bin" |
44 | 48 | ||
45 | val wsURI = workspace.workspaceURI | 49 | val wsURI = workspace.workspaceURI |
46 | val tempLoc = wsURI + TEMPNAME | 50 | val tempLoc = wsURI + TEMPNAME |
47 | val solnLoc = wsURI + SOLNNAME + " " | 51 | val solnLoc = wsURI + SOLNNAME + " " |
48 | val vampLoc = VAMPDIR + VAMPNAME | 52 | val vampLoc = VAMPDIR + VAMPNAME |
49 | 53 | ||
50 | 54 | // 1. create temp file for vampire problem | |
51 | //1. create temp file for vampire problem | ||
52 | var tempURI = workspace.writeModel(problem, TEMPNAME).toFileString | 55 | var tempURI = workspace.writeModel(problem, TEMPNAME).toFileString |
53 | |||
54 | //2. run command and save to | ||
55 | //need to have cygwin downloaded | ||
56 | |||
57 | |||
58 | |||
59 | |||
60 | val p = Runtime.runtime.exec(CMD + vampLoc + OPTION + tempLoc + " > " + solnLoc, newArrayList("Path=" + PATH)) | ||
61 | //2.1 determine time left | ||
62 | p.waitFor | ||
63 | |||
64 | //2.2 store output into local variable | ||
65 | val BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); | ||
66 | val List<String> output = newArrayList | ||
67 | 56 | ||
68 | var line = ""; | 57 | // 2. run command and save to |
69 | while ((line = reader.readLine())!= null) { | 58 | // need to have cygwin downloaded |
70 | output.add(line + "\n"); | 59 | val p = Runtime.runtime.exec(CMD + vampLoc + OPTION + tempLoc + " > " + solnLoc, newArrayList("Path=" + PATH)) |
71 | } | 60 | // 2.1 determine time left |
61 | p.waitFor | ||
72 | 62 | ||
73 | // println(output.toString()) | 63 | // 2.2 store output into local variable |
64 | val BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); | ||
65 | val List<String> output = newArrayList | ||
74 | 66 | ||
75 | //4. delete temp file | 67 | var line = ""; |
76 | workspace.getFile(TEMPNAME).delete | 68 | while ((line = reader.readLine()) != null) { |
77 | 69 | output.add(line + "\n"); | |
78 | //5. determine and return whether or not finite model was found | ||
79 | |||
80 | //6. save solution as a .tptp model | ||
81 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new VampireLanguageFactoryImpl) | ||
82 | workspace.readModel(VampireModel, SOLNNAME).eResource.contents | ||
83 | |||
84 | |||
85 | |||
86 | |||
87 | |||
88 | |||
89 | |||
90 | |||
91 | /* | ||
92 | //Prepare | ||
93 | val warnings = new LinkedList<String> | ||
94 | val debugs = new LinkedList<String> | ||
95 | val runtime = new ArrayList<Long> | ||
96 | val reporter = new A4Reporter() { | ||
97 | override debug(String message) { debugs += message } | ||
98 | override resultSAT (Object command, long solvingTime, Object solution) { runtime += solvingTime } | ||
99 | override resultUNSAT (Object command, long solvingTime, Object solution) { runtime += solvingTime } | ||
100 | override warning(ErrorWarning msg) { warnings += msg.message } | ||
101 | } | 70 | } |
71 | |||
72 | // println(output.toString()) | ||
73 | // 4. delete temp file | ||
74 | workspace.getFile(TEMPNAME).delete | ||
75 | |||
76 | // 5. determine and return whether or not finite model was found | ||
77 | // 6. save solution as a .tptp model | ||
78 | val root = workspace.readModel(VampireModel, SOLNNAME).eResource.contents | ||
102 | 79 | ||
103 | val options = new A4Options() => [ | 80 | |
104 | it.symmetry = configuration.symmetry | 81 | |
105 | it.noOverflow = true | 82 | println((root.get(0) as VampireModelImpl ).comments) |
106 | it.solver = getSolver(configuration.getSolver, configuration) | ||
107 | if(configuration.getSolver.externalSolver) { | ||
108 | it.solverDirectory = configuration.solverPath | ||
109 | } | ||
110 | //it.inferPartialInstance | ||
111 | //it.tempDirectory = CommonPlugin.resolve(workspace.workspaceURI).toFileString | ||
112 | ] | ||
113 | |||
114 | // Transform | ||
115 | var Command command = null; | ||
116 | var CompModule compModule = null | ||
117 | |||
118 | // Start: Alloy -> Kodkod | ||
119 | val kodkodTransformStart = System.currentTimeMillis(); | ||
120 | try { | ||
121 | compModule = CompUtil.parseEverything_fromString(reporter,alloyCode) | ||
122 | if(compModule.allCommands.size != 1) | ||
123 | throw new UnsupportedOperationException('''Alloy files with multiple commands are not supported!''') | ||
124 | command = compModule.allCommands.head | ||
125 | } catch (Err e){ | ||
126 | throw new AlloySolverException(e.message,warnings,e) | ||
127 | } | ||
128 | val kodkodTransformFinish = System.currentTimeMillis - kodkodTransformStart | ||
129 | // Finish: Alloy -> Kodkod | ||
130 | 83 | ||
131 | val limiter = new SimpleTimeLimiter | 84 | return root |
132 | val callable = new AlloyCallerWithTimeout(warnings,debugs,reporter,options,command,compModule,configuration) | ||
133 | var List<Pair<A4Solution, Long>> answers | ||
134 | var boolean finished | ||
135 | if(configuration.runtimeLimit == LogicSolverConfiguration::Unlimited) { | ||
136 | answers = callable.call | ||
137 | finished = true | ||
138 | } else { | ||
139 | try{ | ||
140 | answers = limiter.callWithTimeout(callable,configuration.runtimeLimit,TimeUnit.SECONDS,true) | ||
141 | finished = true | ||
142 | } catch (UncheckedTimeoutException e) { | ||
143 | answers = callable.partialAnswers | ||
144 | finished = false | ||
145 | } | ||
146 | } | ||
147 | 85 | ||
148 | new MonitoredAlloySolution(warnings,debugs,kodkodTransformFinish,answers,finished) | ||
149 | */ | ||
150 | } | ||
151 | /* | 86 | /* |
152 | val static Map<SolverConfiguration, SatSolver> previousSolverConfigurations = new HashMap | 87 | * //Prepare |
153 | def getSolverConfiguration(AlloyBackendSolver backedSolver, String path, String[] options) { | 88 | * val warnings = new LinkedList<String> |
154 | val config = new SolverConfiguration(backedSolver,path,options) | 89 | * val debugs = new LinkedList<String> |
155 | if(previousSolverConfigurations.containsKey(config)) { | 90 | * val runtime = new ArrayList<Long> |
156 | return previousSolverConfigurations.get(config) | 91 | * val reporter = new A4Reporter() { |
157 | } else { | 92 | * override debug(String message) { debugs += message } |
158 | val id ='''DSLReasoner_Alloy_«previousSolverConfigurations.size»_«backedSolver»''' | 93 | * override resultSAT (Object command, long solvingTime, Object solution) { runtime += solvingTime } |
159 | val newSolver = A4Options.SatSolver.make(id,id,path,options) | 94 | * override resultUNSAT (Object command, long solvingTime, Object solution) { runtime += solvingTime } |
160 | previousSolverConfigurations.put(config,newSolver) | 95 | * override warning(ErrorWarning msg) { warnings += msg.message } |
161 | return newSolver | 96 | * } |
162 | } | 97 | * |
163 | } | 98 | * val options = new A4Options() => [ |
164 | 99 | * it.symmetry = configuration.symmetry | |
165 | def getSolver(AlloyBackendSolver backedSolver, AlloySolverConfiguration configuration) { | 100 | * it.noOverflow = true |
166 | switch(backedSolver){ | 101 | * it.solver = getSolver(configuration.getSolver, configuration) |
167 | case BerkMinPIPE: return A4Options.SatSolver.BerkMinPIPE | 102 | * if(configuration.getSolver.externalSolver) { |
168 | case SpearPIPE: return A4Options.SatSolver.SpearPIPE | 103 | * it.solverDirectory = configuration.solverPath |
169 | case MiniSatJNI: return A4Options.SatSolver.MiniSatJNI | 104 | * } |
170 | case MiniSatProverJNI: return A4Options.SatSolver.MiniSatProverJNI | 105 | * //it.inferPartialInstance |
171 | case LingelingJNI: return A4Options.SatSolver.LingelingJNI | 106 | * //it.tempDirectory = CommonPlugin.resolve(workspace.workspaceURI).toFileString |
172 | case PLingelingJNI: return getSolverConfiguration(backedSolver,configuration.solverPath,null) | 107 | * ] |
173 | case GlucoseJNI: return A4Options.SatSolver.GlucoseJNI | 108 | * |
174 | case CryptoMiniSatJNI: return A4Options.SatSolver.CryptoMiniSatJNI | 109 | * // Transform |
175 | case SAT4J: return A4Options.SatSolver.SAT4J | 110 | * var Command command = null; |
176 | case CNF: return A4Options.SatSolver.CNF | 111 | * var CompModule compModule = null |
177 | case KodKod: return A4Options.SatSolver.KK | 112 | * |
178 | } | 113 | * // Start: Alloy -> Kodkod |
179 | } | 114 | * val kodkodTransformStart = System.currentTimeMillis(); |
180 | 115 | * try { | |
181 | def isExternalSolver(AlloyBackendSolver backedSolver) { | 116 | * compModule = CompUtil.parseEverything_fromString(reporter,alloyCode) |
182 | return !(backedSolver == AlloyBackendSolver.SAT4J) | 117 | * if(compModule.allCommands.size != 1) |
118 | * throw new UnsupportedOperationException('''Alloy files with multiple commands are not supported!''') | ||
119 | * command = compModule.allCommands.head | ||
120 | * } catch (Err e){ | ||
121 | * throw new AlloySolverException(e.message,warnings,e) | ||
122 | * } | ||
123 | * val kodkodTransformFinish = System.currentTimeMillis - kodkodTransformStart | ||
124 | * // Finish: Alloy -> Kodkod | ||
125 | * | ||
126 | * val limiter = new SimpleTimeLimiter | ||
127 | * val callable = new AlloyCallerWithTimeout(warnings,debugs,reporter,options,command,compModule,configuration) | ||
128 | * var List<Pair<A4Solution, Long>> answers | ||
129 | * var boolean finished | ||
130 | * if(configuration.runtimeLimit == LogicSolverConfiguration::Unlimited) { | ||
131 | * answers = callable.call | ||
132 | * finished = true | ||
133 | * } else { | ||
134 | * try{ | ||
135 | * answers = limiter.callWithTimeout(callable,configuration.runtimeLimit,TimeUnit.SECONDS,true) | ||
136 | * finished = true | ||
137 | * } catch (UncheckedTimeoutException e) { | ||
138 | * answers = callable.partialAnswers | ||
139 | * finished = false | ||
140 | * } | ||
141 | * } | ||
142 | |||
143 | * new MonitoredAlloySolution(warnings,debugs,kodkodTransformFinish,answers,finished) | ||
144 | */ | ||
183 | } | 145 | } |
184 | */ | ||
185 | } | ||
186 | /* | 146 | /* |
187 | class VampireCallerWithTimeout implements Callable<List<Pair<A4Solution,Long>>>{ | 147 | * val static Map<SolverConfiguration, SatSolver> previousSolverConfigurations = new HashMap |
188 | 148 | * def getSolverConfiguration(AlloyBackendSolver backedSolver, String path, String[] options) { | |
189 | val List<String> warnings | 149 | * val config = new SolverConfiguration(backedSolver,path,options) |
190 | val List<String> debugs | 150 | * if(previousSolverConfigurations.containsKey(config)) { |
191 | val A4Reporter reporter | 151 | * return previousSolverConfigurations.get(config) |
192 | val A4Options options | 152 | * } else { |
193 | 153 | * val id ='''DSLReasoner_Alloy_«previousSolverConfigurations.size»_«backedSolver»''' | |
194 | val Command command | 154 | * val newSolver = A4Options.SatSolver.make(id,id,path,options) |
195 | val CompModule compModule | 155 | * previousSolverConfigurations.put(config,newSolver) |
196 | val AlloySolverConfiguration configuration | 156 | * return newSolver |
197 | 157 | * } | |
198 | val List<Pair<A4Solution,Long>> answers = new LinkedList() | 158 | * } |
199 | 159 | * | |
200 | new(List<String> warnings, | 160 | * def getSolver(AlloyBackendSolver backedSolver, AlloySolverConfiguration configuration) { |
201 | List<String> debugs, | 161 | * switch(backedSolver){ |
202 | A4Reporter reporter, | 162 | * case BerkMinPIPE: return A4Options.SatSolver.BerkMinPIPE |
203 | A4Options options, | 163 | * case SpearPIPE: return A4Options.SatSolver.SpearPIPE |
204 | Command command, | 164 | * case MiniSatJNI: return A4Options.SatSolver.MiniSatJNI |
205 | CompModule compModule, | 165 | * case MiniSatProverJNI: return A4Options.SatSolver.MiniSatProverJNI |
206 | AlloySolverConfiguration configuration) | 166 | * case LingelingJNI: return A4Options.SatSolver.LingelingJNI |
207 | { | 167 | * case PLingelingJNI: return getSolverConfiguration(backedSolver,configuration.solverPath,null) |
208 | this.warnings = warnings | 168 | * case GlucoseJNI: return A4Options.SatSolver.GlucoseJNI |
209 | this.debugs = debugs | 169 | * case CryptoMiniSatJNI: return A4Options.SatSolver.CryptoMiniSatJNI |
210 | this.reporter = reporter | 170 | * case SAT4J: return A4Options.SatSolver.SAT4J |
211 | this.options = options | 171 | * case CNF: return A4Options.SatSolver.CNF |
212 | this.command = command | 172 | * case KodKod: return A4Options.SatSolver.KK |
213 | this.compModule = compModule | 173 | * } |
214 | this.configuration = configuration | 174 | * } |
215 | } | 175 | * |
216 | 176 | * def isExternalSolver(AlloyBackendSolver backedSolver) { | |
217 | override call() throws Exception { | 177 | * return !(backedSolver == AlloyBackendSolver.SAT4J) |
218 | val startTime = System.currentTimeMillis | 178 | * } |
219 | 179 | */ | |
220 | // Start: Execute | ||
221 | var A4Solution lastAnswer = null | ||
222 | try { | ||
223 | if(!configuration.progressMonitor.isCancelled) { | ||
224 | do{ | ||
225 | if(lastAnswer == null) { | ||
226 | lastAnswer = TranslateAlloyToKodkod.execute_command(reporter,compModule.allSigs,command,options) | ||
227 | } else { | ||
228 | lastAnswer = lastAnswer.next | ||
229 | } | ||
230 | configuration.progressMonitor.workedBackwardTransformation(configuration.solutionScope.numberOfRequiredSolution) | ||
231 | |||
232 | val runtime = System.currentTimeMillis -startTime | ||
233 | synchronized(this) { | ||
234 | answers += (lastAnswer->runtime) | ||
235 | } | ||
236 | } while(lastAnswer.satisfiable != false && !hasEnoughSolution(answers) && !configuration.progressMonitor.isCancelled) | ||
237 | |||
238 | } | ||
239 | }catch(Exception e) { | ||
240 | warnings +=e.message | ||
241 | } | ||
242 | // Finish: execute | ||
243 | return answers | ||
244 | } | ||
245 | |||
246 | def hasEnoughSolution(List<?> answers) { | ||
247 | if(configuration.solutionScope.numberOfRequiredSolution < 0) return false | ||
248 | else return answers.size() == configuration.solutionScope.numberOfRequiredSolution | ||
249 | } | ||
250 | |||
251 | public def getPartialAnswers() { | ||
252 | return answers | ||
253 | } | ||
254 | |||
255 | } | 180 | } |
256 | /* | 181 | /* |
257 | @Data class SolverConfiguration { | 182 | * class VampireCallerWithTimeout implements Callable<List<Pair<A4Solution,Long>>>{ |
258 | VampireBackendSolver backendSolver | 183 | * |
259 | String path | 184 | * val List<String> warnings |
260 | String[] options | 185 | * val List<String> debugs |
261 | } | 186 | * val A4Reporter reporter |
262 | */ | 187 | * val A4Options options |
188 | * | ||
189 | * val Command command | ||
190 | * val CompModule compModule | ||
191 | * val AlloySolverConfiguration configuration | ||
192 | * | ||
193 | * val List<Pair<A4Solution,Long>> answers = new LinkedList() | ||
194 | * | ||
195 | * new(List<String> warnings, | ||
196 | * List<String> debugs, | ||
197 | * A4Reporter reporter, | ||
198 | * A4Options options, | ||
199 | * Command command, | ||
200 | * CompModule compModule, | ||
201 | * AlloySolverConfiguration configuration) | ||
202 | * { | ||
203 | * this.warnings = warnings | ||
204 | * this.debugs = debugs | ||
205 | * this.reporter = reporter | ||
206 | * this.options = options | ||
207 | * this.command = command | ||
208 | * this.compModule = compModule | ||
209 | * this.configuration = configuration | ||
210 | * } | ||
211 | * | ||
212 | * override call() throws Exception { | ||
213 | * val startTime = System.currentTimeMillis | ||
214 | * | ||
215 | * // Start: Execute | ||
216 | * var A4Solution lastAnswer = null | ||
217 | * try { | ||
218 | * if(!configuration.progressMonitor.isCancelled) { | ||
219 | * do{ | ||
220 | * if(lastAnswer == null) { | ||
221 | * lastAnswer = TranslateAlloyToKodkod.execute_command(reporter,compModule.allSigs,command,options) | ||
222 | * } else { | ||
223 | * lastAnswer = lastAnswer.next | ||
224 | * } | ||
225 | * configuration.progressMonitor.workedBackwardTransformation(configuration.solutionScope.numberOfRequiredSolution) | ||
226 | * | ||
227 | * val runtime = System.currentTimeMillis -startTime | ||
228 | * synchronized(this) { | ||
229 | * answers += (lastAnswer->runtime) | ||
230 | * } | ||
231 | * } while(lastAnswer.satisfiable != false && !hasEnoughSolution(answers) && !configuration.progressMonitor.isCancelled) | ||
232 | * | ||
233 | * } | ||
234 | * }catch(Exception e) { | ||
235 | * warnings +=e.message | ||
236 | * } | ||
237 | * // Finish: execute | ||
238 | * return answers | ||
239 | * } | ||
240 | * | ||
241 | * def hasEnoughSolution(List<?> answers) { | ||
242 | * if(configuration.solutionScope.numberOfRequiredSolution < 0) return false | ||
243 | * else return answers.size() == configuration.solutionScope.numberOfRequiredSolution | ||
244 | * } | ||
245 | * | ||
246 | * public def getPartialAnswers() { | ||
247 | * return answers | ||
248 | * } | ||
249 | |||
250 | * } | ||
251 | * /* | ||
252 | * @Data class SolverConfiguration { | ||
253 | * VampireBackendSolver backendSolver | ||
254 | * String path | ||
255 | * String[] options | ||
256 | * } | ||
257 | */ | ||
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 a7942958..43992ea0 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/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 487f9569..19608361 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/.Logic2VampireLanguageMapperTrace.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin index bd61b874..791a9524 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.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 2e58cecd..89003c27 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 1b894303..b37d993a 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 4b7fd4bf..45afcecc 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 6626adf4..0f4dc63a 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 339baea9..ab58fcab 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 868f30e7..cf19663e 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/.VampireHandler.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin index 08ffcb3b..0b2cb192 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 65f58281..58da7ccd 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 | |||
@@ -16,7 +16,6 @@ import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; | |||
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; | 16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; |
17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; | 17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; |
18 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt; | 18 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInt; |
19 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSReal; | ||
20 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | 19 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; |
21 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; | 20 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; |
22 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; | 21 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; |
@@ -44,7 +43,6 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.InstanceOf; | |||
44 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral; | 43 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral; |
45 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; | 44 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not; |
46 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or; | 45 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or; |
47 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral; | ||
48 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; | 46 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; |
49 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; | 47 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; |
50 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; | 48 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; |
@@ -98,7 +96,7 @@ public class Logic2VampireLanguageMapper { | |||
98 | public TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace> transformProblem(final LogicProblem problem, final VampireSolverConfiguration config) { | 96 | public TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace> transformProblem(final LogicProblem problem, final VampireSolverConfiguration config) { |
99 | VLSComment _createVLSComment = this.factory.createVLSComment(); | 97 | VLSComment _createVLSComment = this.factory.createVLSComment(); |
100 | final Procedure1<VLSComment> _function = (VLSComment it) -> { | 98 | final Procedure1<VLSComment> _function = (VLSComment it) -> { |
101 | it.setComment("This is an initial Test Comment"); | 99 | it.setComment("%This is an initial Test Comment"); |
102 | }; | 100 | }; |
103 | final VLSComment initialComment = ObjectExtensions.<VLSComment>operator_doubleArrow(_createVLSComment, _function); | 101 | final VLSComment initialComment = ObjectExtensions.<VLSComment>operator_doubleArrow(_createVLSComment, _function); |
104 | VampireModel _createVampireModel = this.factory.createVampireModel(); | 102 | VampireModel _createVampireModel = this.factory.createVampireModel(); |
@@ -202,14 +200,6 @@ public class Logic2VampireLanguageMapper { | |||
202 | return ObjectExtensions.<VLSInt>operator_doubleArrow(_createVLSInt, _function); | 200 | return ObjectExtensions.<VLSInt>operator_doubleArrow(_createVLSInt, _function); |
203 | } | 201 | } |
204 | 202 | ||
205 | protected VLSTerm _transformTerm(final RealLiteral literal, final Logic2VampireLanguageMapperTrace trace, final Map<Variable, VLSVariable> variables) { | ||
206 | VLSReal _createVLSReal = this.factory.createVLSReal(); | ||
207 | final Procedure1<VLSReal> _function = (VLSReal it) -> { | ||
208 | it.setValue(literal.getValue().toString()); | ||
209 | }; | ||
210 | return ObjectExtensions.<VLSReal>operator_doubleArrow(_createVLSReal, _function); | ||
211 | } | ||
212 | |||
213 | protected VLSTerm _transformTerm(final Not not, final Logic2VampireLanguageMapperTrace trace, final Map<Variable, VLSVariable> variables) { | 203 | protected VLSTerm _transformTerm(final Not not, final Logic2VampireLanguageMapperTrace trace, final Map<Variable, VLSVariable> variables) { |
214 | VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation(); | 204 | VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation(); |
215 | final Procedure1<VLSUnaryNegation> _function = (VLSUnaryNegation it) -> { | 205 | final Procedure1<VLSUnaryNegation> _function = (VLSUnaryNegation it) -> { |
@@ -394,8 +384,6 @@ public class Logic2VampireLanguageMapper { | |||
394 | return _transformTerm((Not)and, trace, variables); | 384 | return _transformTerm((Not)and, trace, variables); |
395 | } else if (and instanceof Or) { | 385 | } else if (and instanceof Or) { |
396 | return _transformTerm((Or)and, trace, variables); | 386 | return _transformTerm((Or)and, trace, variables); |
397 | } else if (and instanceof RealLiteral) { | ||
398 | return _transformTerm((RealLiteral)and, trace, variables); | ||
399 | } else if (and instanceof InstanceOf) { | 387 | } else if (and instanceof InstanceOf) { |
400 | return _transformTerm((InstanceOf)and, trace, variables); | 388 | return _transformTerm((InstanceOf)and, trace, variables); |
401 | } else if (and instanceof SymbolicValue) { | 389 | } else if (and instanceof SymbolicValue) { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java index dd549c29..7daf1b2f 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ContainmentMapper.java | |||
@@ -15,6 +15,7 @@ import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | |||
15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; | 15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; |
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; | 16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; |
17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; | 17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; |
18 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariableDeclaration; | ||
18 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; | 19 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; |
19 | import com.google.common.base.Objects; | 20 | import com.google.common.base.Objects; |
20 | import com.google.common.collect.Iterables; | 21 | import com.google.common.collect.Iterables; |
@@ -37,7 +38,6 @@ import org.eclipse.emf.common.util.EList; | |||
37 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | 38 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; |
38 | import org.eclipse.xtext.xbase.lib.Conversions; | 39 | import org.eclipse.xtext.xbase.lib.Conversions; |
39 | import org.eclipse.xtext.xbase.lib.Extension; | 40 | import org.eclipse.xtext.xbase.lib.Extension; |
40 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
41 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | 41 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; |
42 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | 42 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; |
43 | 43 | ||
@@ -123,7 +123,7 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
123 | it.setFofRole("axiom"); | 123 | it.setFofRole("axiom"); |
124 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 124 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
125 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { | 125 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { |
126 | EList<VLSVariable> _variables = it_1.getVariables(); | 126 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
127 | VLSVariable _duplicate = this.support.duplicate(this.variable); | 127 | VLSVariable _duplicate = this.support.duplicate(this.variable); |
128 | _variables.add(_duplicate); | 128 | _variables.add(_duplicate); |
129 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); | 129 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); |
@@ -193,10 +193,10 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
193 | it.setFofRole("axiom"); | 193 | it.setFofRole("axiom"); |
194 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); | 194 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); |
195 | final Procedure1<VLSExistentialQuantifier> _function_5 = (VLSExistentialQuantifier it_1) -> { | 195 | final Procedure1<VLSExistentialQuantifier> _function_5 = (VLSExistentialQuantifier it_1) -> { |
196 | EList<VLSVariable> _variables = it_1.getVariables(); | 196 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
197 | VLSVariable _duplicate = this.support.duplicate(varA); | 197 | VLSVariable _duplicate = this.support.duplicate(varA); |
198 | _variables.add(_duplicate); | 198 | _variables.add(_duplicate); |
199 | EList<VLSVariable> _variables_1 = it_1.getVariables(); | 199 | EList<VLSVariableDeclaration> _variables_1 = it_1.getVariables(); |
200 | VLSVariable _duplicate_1 = this.support.duplicate(varB); | 200 | VLSVariable _duplicate_1 = this.support.duplicate(varB); |
201 | _variables_1.add(_duplicate_1); | 201 | _variables_1.add(_duplicate_1); |
202 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); | 202 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); |
@@ -206,10 +206,10 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
206 | final Procedure1<VLSUnaryNegation> _function_7 = (VLSUnaryNegation it_3) -> { | 206 | final Procedure1<VLSUnaryNegation> _function_7 = (VLSUnaryNegation it_3) -> { |
207 | VLSExistentialQuantifier _createVLSExistentialQuantifier_1 = this.factory.createVLSExistentialQuantifier(); | 207 | VLSExistentialQuantifier _createVLSExistentialQuantifier_1 = this.factory.createVLSExistentialQuantifier(); |
208 | final Procedure1<VLSExistentialQuantifier> _function_8 = (VLSExistentialQuantifier it_4) -> { | 208 | final Procedure1<VLSExistentialQuantifier> _function_8 = (VLSExistentialQuantifier it_4) -> { |
209 | EList<VLSVariable> _variables_2 = it_4.getVariables(); | 209 | EList<VLSVariableDeclaration> _variables_2 = it_4.getVariables(); |
210 | VLSVariable _duplicate_2 = this.support.duplicate(varC); | 210 | VLSVariable _duplicate_2 = this.support.duplicate(varC); |
211 | _variables_2.add(_duplicate_2); | 211 | _variables_2.add(_duplicate_2); |
212 | EList<VLSVariable> _variables_3 = it_4.getVariables(); | 212 | EList<VLSVariableDeclaration> _variables_3 = it_4.getVariables(); |
213 | VLSVariable _duplicate_3 = this.support.duplicate(varB); | 213 | VLSVariable _duplicate_3 = this.support.duplicate(varB); |
214 | _variables_3.add(_duplicate_3); | 214 | _variables_3.add(_duplicate_3); |
215 | it_4.setOperand(this.support.duplicate(rel, CollectionLiterals.<VLSVariable>newArrayList(varC, varB))); | 215 | it_4.setOperand(this.support.duplicate(rel, CollectionLiterals.<VLSVariable>newArrayList(varC, varB))); |
@@ -234,18 +234,13 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
234 | Set<Map.Entry<VLSFunction, List<VLSFunction>>> _entrySet = type2cont.entrySet(); | 234 | Set<Map.Entry<VLSFunction, List<VLSFunction>>> _entrySet = type2cont.entrySet(); |
235 | for (final Map.Entry<VLSFunction, List<VLSFunction>> e : _entrySet) { | 235 | for (final Map.Entry<VLSFunction, List<VLSFunction>> e : _entrySet) { |
236 | { | 236 | { |
237 | VLSFunction _key = e.getKey(); | ||
238 | String _plus = (_key + " "); | ||
239 | List<VLSFunction> _value = e.getValue(); | ||
240 | String _plus_1 = (_plus + _value); | ||
241 | InputOutput.<String>println(_plus_1); | ||
242 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); | 237 | VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula(); |
243 | final Procedure1<VLSFofFormula> _function_4 = (VLSFofFormula it) -> { | 238 | final Procedure1<VLSFofFormula> _function_4 = (VLSFofFormula it) -> { |
244 | it.setName(this.support.toIDMultiple("containment_contained", e.getKey().getConstant().toString())); | 239 | it.setName(this.support.toIDMultiple("containment_contained", e.getKey().getConstant().toString())); |
245 | it.setFofRole("axiom"); | 240 | it.setFofRole("axiom"); |
246 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 241 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
247 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { | 242 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { |
248 | EList<VLSVariable> _variables = it_1.getVariables(); | 243 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
249 | VLSVariable _duplicate = this.support.duplicate(varA); | 244 | VLSVariable _duplicate = this.support.duplicate(varA); |
250 | _variables.add(_duplicate); | 245 | _variables.add(_duplicate); |
251 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); | 246 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); |
@@ -253,7 +248,7 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
253 | it_2.setLeft(this.support.duplicate(e.getKey(), varA)); | 248 | it_2.setLeft(this.support.duplicate(e.getKey(), varA)); |
254 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); | 249 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); |
255 | final Procedure1<VLSExistentialQuantifier> _function_7 = (VLSExistentialQuantifier it_3) -> { | 250 | final Procedure1<VLSExistentialQuantifier> _function_7 = (VLSExistentialQuantifier it_3) -> { |
256 | EList<VLSVariable> _variables_1 = it_3.getVariables(); | 251 | EList<VLSVariableDeclaration> _variables_1 = it_3.getVariables(); |
257 | VLSVariable _duplicate_1 = this.support.duplicate(varB); | 252 | VLSVariable _duplicate_1 = this.support.duplicate(varB); |
258 | _variables_1.add(_duplicate_1); | 253 | _variables_1.add(_duplicate_1); |
259 | int _length_1 = ((Object[])Conversions.unwrapArray(e.getValue(), Object.class)).length; | 254 | int _length_1 = ((Object[])Conversions.unwrapArray(e.getValue(), Object.class)).length; |
@@ -313,9 +308,9 @@ public class Logic2VampireLanguageMapper_ContainmentMapper { | |||
313 | final Procedure1<VLSUnaryNegation> _function_6 = (VLSUnaryNegation it_1) -> { | 308 | final Procedure1<VLSUnaryNegation> _function_6 = (VLSUnaryNegation it_1) -> { |
314 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); | 309 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); |
315 | final Procedure1<VLSExistentialQuantifier> _function_7 = (VLSExistentialQuantifier it_2) -> { | 310 | final Procedure1<VLSExistentialQuantifier> _function_7 = (VLSExistentialQuantifier it_2) -> { |
316 | EList<VLSVariable> _variables = it_2.getVariables(); | 311 | EList<VLSVariableDeclaration> _variables = it_2.getVariables(); |
317 | List<VLSVariable> _duplicate = this.support.duplicate(variables); | 312 | List<VLSVariable> _duplicate = this.support.duplicate(variables); |
318 | Iterables.<VLSVariable>addAll(_variables, _duplicate); | 313 | Iterables.<VLSVariableDeclaration>addAll(_variables, _duplicate); |
319 | it_2.setOperand(this.support.unfoldAnd(conjunctionList)); | 314 | it_2.setOperand(this.support.unfoldAnd(conjunctionList)); |
320 | }; | 315 | }; |
321 | VLSExistentialQuantifier _doubleArrow_1 = ObjectExtensions.<VLSExistentialQuantifier>operator_doubleArrow(_createVLSExistentialQuantifier, _function_7); | 316 | VLSExistentialQuantifier _doubleArrow_1 = ObjectExtensions.<VLSExistentialQuantifier>operator_doubleArrow(_createVLSExistentialQuantifier, _function_7); |
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 c6565f6a..657c3292 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 | |||
@@ -9,6 +9,7 @@ import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; | |||
9 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | 9 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; |
10 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; | 10 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; |
11 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; | 11 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; |
12 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariableDeclaration; | ||
12 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; | 13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; |
13 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference; | 14 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.ComplexTypeReference; |
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation; |
@@ -76,7 +77,7 @@ public class Logic2VampireLanguageMapper_RelationMapper { | |||
76 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 77 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
77 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { | 78 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it_1) -> { |
78 | for (final VLSVariable v : relVar2VLS) { | 79 | for (final VLSVariable v : relVar2VLS) { |
79 | EList<VLSVariable> _variables = it_1.getVariables(); | 80 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
80 | VLSVariable _duplicate = this.support.duplicate(v); | 81 | VLSVariable _duplicate = this.support.duplicate(v); |
81 | _variables.add(_duplicate); | 82 | _variables.add(_duplicate); |
82 | } | 83 | } |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java index c2e4033b..6d4767a7 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java | |||
@@ -13,6 +13,7 @@ import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; | |||
13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | 13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; |
14 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; | 14 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; |
15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; | 15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; |
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariableDeclaration; | ||
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; | 17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; |
17 | import com.google.common.base.Objects; | 18 | import com.google.common.base.Objects; |
18 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; | 19 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; |
@@ -244,7 +245,7 @@ public class Logic2VampireLanguageMapper_ScopeMapper { | |||
244 | it.setFofRole("axiom"); | 245 | it.setFofRole("axiom"); |
245 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 246 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
246 | final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { | 247 | final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { |
247 | EList<VLSVariable> _variables = it_1.getVariables(); | 248 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
248 | VLSVariable _duplicate = this.support.duplicate(this.variable); | 249 | VLSVariable _duplicate = this.support.duplicate(this.variable); |
249 | _variables.add(_duplicate); | 250 | _variables.add(_duplicate); |
250 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); | 251 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java index f1d73bec..6cd53fae 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java | |||
@@ -13,6 +13,7 @@ import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSOr; | |||
13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | 13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; |
14 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; | 14 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; |
15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; | 15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; |
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariableDeclaration; | ||
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; | 17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; |
17 | import com.google.common.base.Objects; | 18 | import com.google.common.base.Objects; |
18 | import com.google.common.collect.Iterables; | 19 | import com.google.common.collect.Iterables; |
@@ -323,9 +324,9 @@ public class Logic2VampireLanguageMapper_Support { | |||
323 | if (isUniversal) { | 324 | if (isUniversal) { |
324 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 325 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
325 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it) -> { | 326 | final Procedure1<VLSUniversalQuantifier> _function_1 = (VLSUniversalQuantifier it) -> { |
326 | EList<VLSVariable> _variables = it.getVariables(); | 327 | EList<VLSVariableDeclaration> _variables = it.getVariables(); |
327 | Collection<VLSVariable> _values = variableMap.values(); | 328 | Collection<VLSVariable> _values = variableMap.values(); |
328 | Iterables.<VLSVariable>addAll(_variables, _values); | 329 | Iterables.<VLSVariableDeclaration>addAll(_variables, _values); |
329 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); | 330 | VLSImplies _createVLSImplies = this.factory.createVLSImplies(); |
330 | final Procedure1<VLSImplies> _function_2 = (VLSImplies it_1) -> { | 331 | final Procedure1<VLSImplies> _function_2 = (VLSImplies it_1) -> { |
331 | it_1.setLeft(this.unfoldAnd(typedefs)); | 332 | it_1.setLeft(this.unfoldAnd(typedefs)); |
@@ -341,9 +342,9 @@ public class Logic2VampireLanguageMapper_Support { | |||
341 | typedefs.add(mapper.transformTerm(expression.getExpression(), trace, this.withAddition(variables, variableMap))); | 342 | typedefs.add(mapper.transformTerm(expression.getExpression(), trace, this.withAddition(variables, variableMap))); |
342 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); | 343 | VLSExistentialQuantifier _createVLSExistentialQuantifier = this.factory.createVLSExistentialQuantifier(); |
343 | final Procedure1<VLSExistentialQuantifier> _function_2 = (VLSExistentialQuantifier it) -> { | 344 | final Procedure1<VLSExistentialQuantifier> _function_2 = (VLSExistentialQuantifier it) -> { |
344 | EList<VLSVariable> _variables = it.getVariables(); | 345 | EList<VLSVariableDeclaration> _variables = it.getVariables(); |
345 | Collection<VLSVariable> _values = variableMap.values(); | 346 | Collection<VLSVariable> _values = variableMap.values(); |
346 | Iterables.<VLSVariable>addAll(_variables, _values); | 347 | Iterables.<VLSVariableDeclaration>addAll(_variables, _values); |
347 | it.setOperand(this.unfoldAnd(typedefs)); | 348 | it.setOperand(this.unfoldAnd(typedefs)); |
348 | }; | 349 | }; |
349 | _xblockexpression_1 = ObjectExtensions.<VLSExistentialQuantifier>operator_doubleArrow(_createVLSExistentialQuantifier, _function_2); | 350 | _xblockexpression_1 = ObjectExtensions.<VLSExistentialQuantifier>operator_doubleArrow(_createVLSExistentialQuantifier, _function_2); |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java index 73e59774..7921f204 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.java | |||
@@ -15,6 +15,7 @@ import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm; | |||
15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; | 15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUnaryNegation; |
16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; | 16 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSUniversalQuantifier; |
17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; | 17 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable; |
18 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariableDeclaration; | ||
18 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; | 19 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; |
19 | import com.google.common.base.Objects; | 20 | import com.google.common.base.Objects; |
20 | import com.google.common.collect.Iterables; | 21 | import com.google.common.collect.Iterables; |
@@ -143,7 +144,7 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
143 | it.setFofRole("axiom"); | 144 | it.setFofRole("axiom"); |
144 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 145 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
145 | final Procedure1<VLSUniversalQuantifier> _function_3 = (VLSUniversalQuantifier it_1) -> { | 146 | final Procedure1<VLSUniversalQuantifier> _function_3 = (VLSUniversalQuantifier it_1) -> { |
146 | EList<VLSVariable> _variables = it_1.getVariables(); | 147 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
147 | VLSVariable _duplicate = this.support.duplicate(variable); | 148 | VLSVariable _duplicate = this.support.duplicate(variable); |
148 | _variables.add(_duplicate); | 149 | _variables.add(_duplicate); |
149 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); | 150 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); |
@@ -193,7 +194,7 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
193 | it.setFofRole("axiom"); | 194 | it.setFofRole("axiom"); |
194 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 195 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
195 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { | 196 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { |
196 | EList<VLSVariable> _variables = it_1.getVariables(); | 197 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
197 | VLSVariable _duplicate = this.support.duplicate(variable); | 198 | VLSVariable _duplicate = this.support.duplicate(variable); |
198 | _variables.add(_duplicate); | 199 | _variables.add(_duplicate); |
199 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); | 200 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); |
@@ -263,7 +264,7 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
263 | it.setFofRole("axiom"); | 264 | it.setFofRole("axiom"); |
264 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 265 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
265 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { | 266 | final Procedure1<VLSUniversalQuantifier> _function_5 = (VLSUniversalQuantifier it_1) -> { |
266 | EList<VLSVariable> _variables = it_1.getVariables(); | 267 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
267 | VLSVariable _duplicate = this.support.duplicate(variable); | 268 | VLSVariable _duplicate = this.support.duplicate(variable); |
268 | _variables.add(_duplicate); | 269 | _variables.add(_duplicate); |
269 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); | 270 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); |
@@ -291,7 +292,7 @@ public class Logic2VampireLanguageMapper_TypeMapper { | |||
291 | it.setFofRole("axiom"); | 292 | it.setFofRole("axiom"); |
292 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); | 293 | VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); |
293 | final Procedure1<VLSUniversalQuantifier> _function_6 = (VLSUniversalQuantifier it_1) -> { | 294 | final Procedure1<VLSUniversalQuantifier> _function_6 = (VLSUniversalQuantifier it_1) -> { |
294 | EList<VLSVariable> _variables = it_1.getVariables(); | 295 | EList<VLSVariableDeclaration> _variables = it_1.getVariables(); |
295 | VLSVariable _duplicate = this.support.duplicate(variable); | 296 | VLSVariable _duplicate = this.support.duplicate(variable); |
296 | _variables.add(_duplicate); | 297 | _variables.add(_duplicate); |
297 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); | 298 | VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); |
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 1479e6b7..7f6ce1c6 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 | |||
@@ -1,59 +1,55 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; | 1 | package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSComment; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; | 5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; |
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl; | 6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireModelImpl; |
6 | import com.google.common.base.Objects; | 7 | import com.google.common.base.Objects; |
7 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | 8 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; |
8 | import java.io.BufferedReader; | 9 | import java.io.BufferedReader; |
9 | import java.io.InputStream; | 10 | import java.io.InputStream; |
10 | import java.io.InputStreamReader; | 11 | import java.io.InputStreamReader; |
11 | import java.util.List; | 12 | import java.util.List; |
12 | import java.util.Map; | ||
13 | import org.eclipse.emf.common.util.EList; | 13 | import org.eclipse.emf.common.util.EList; |
14 | import org.eclipse.emf.common.util.URI; | 14 | import org.eclipse.emf.common.util.URI; |
15 | import org.eclipse.emf.ecore.EObject; | 15 | import org.eclipse.emf.ecore.EObject; |
16 | import org.eclipse.emf.ecore.resource.Resource; | ||
17 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | 16 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; |
18 | import org.eclipse.xtext.xbase.lib.Conversions; | 17 | import org.eclipse.xtext.xbase.lib.Conversions; |
19 | import org.eclipse.xtext.xbase.lib.Exceptions; | 18 | import org.eclipse.xtext.xbase.lib.Exceptions; |
19 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
20 | 20 | ||
21 | @SuppressWarnings("all") | 21 | @SuppressWarnings("all") |
22 | public class VampireHandler { | 22 | public class VampireHandler { |
23 | public EList<EObject> callSolver(final VampireModel problem, final ReasonerWorkspace workspace, final VampireSolverConfiguration configuration) { | 23 | public EList<EObject> callSolver(final VampireModel problem, final ReasonerWorkspace workspace, final VampireSolverConfiguration configuration) { |
24 | try { | 24 | try { |
25 | EList<EObject> _xblockexpression = null; | 25 | final String CMD = "cmd /c "; |
26 | { | 26 | final String VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\"; |
27 | final String CMD = "cmd /c "; | 27 | final String VAMPNAME = "vampire.exe"; |
28 | final String VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\"; | 28 | final String TEMPNAME = "TEMP.tptp"; |
29 | final String VAMPNAME = "vampire.exe"; | 29 | final String OPTION = " --mode casc_sat "; |
30 | final String TEMPNAME = "TEMP.tptp"; | 30 | final String SOLNNAME = "solution.tptp"; |
31 | final String OPTION = " --mode casc_sat "; | 31 | final String PATH = "C:/cygwin64/bin"; |
32 | final String SOLNNAME = "solution.tptp"; | 32 | final URI wsURI = workspace.getWorkspaceURI(); |
33 | final String PATH = "C:/cygwin64/bin"; | 33 | final String tempLoc = (wsURI + TEMPNAME); |
34 | final URI wsURI = workspace.getWorkspaceURI(); | 34 | String _plus = (wsURI + SOLNNAME); |
35 | final String tempLoc = (wsURI + TEMPNAME); | 35 | final String solnLoc = (_plus + " "); |
36 | String _plus = (wsURI + SOLNNAME); | 36 | final String vampLoc = (VAMPDIR + VAMPNAME); |
37 | final String solnLoc = (_plus + " "); | 37 | String tempURI = workspace.writeModel(problem, TEMPNAME).toFileString(); |
38 | final String vampLoc = (VAMPDIR + VAMPNAME); | 38 | final Process p = Runtime.getRuntime().exec((((((CMD + vampLoc) + OPTION) + tempLoc) + " > ") + solnLoc), ((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList(("Path=" + PATH)), String.class))); |
39 | String tempURI = workspace.writeModel(problem, TEMPNAME).toFileString(); | 39 | p.waitFor(); |
40 | final Process p = Runtime.getRuntime().exec((((((CMD + vampLoc) + OPTION) + tempLoc) + " > ") + solnLoc), ((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList(("Path=" + PATH)), String.class))); | 40 | InputStream _inputStream = p.getInputStream(); |
41 | p.waitFor(); | 41 | InputStreamReader _inputStreamReader = new InputStreamReader(_inputStream); |
42 | InputStream _inputStream = p.getInputStream(); | 42 | final BufferedReader reader = new BufferedReader(_inputStreamReader); |
43 | InputStreamReader _inputStreamReader = new InputStreamReader(_inputStream); | 43 | final List<String> output = CollectionLiterals.<String>newArrayList(); |
44 | final BufferedReader reader = new BufferedReader(_inputStreamReader); | 44 | String line = ""; |
45 | final List<String> output = CollectionLiterals.<String>newArrayList(); | 45 | while ((!Objects.equal((line = reader.readLine()), null))) { |
46 | String line = ""; | 46 | output.add((line + "\n")); |
47 | while ((!Objects.equal((line = reader.readLine()), null))) { | ||
48 | output.add((line + "\n")); | ||
49 | } | ||
50 | workspace.getFile(TEMPNAME).delete(); | ||
51 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
52 | VampireLanguageFactoryImpl _vampireLanguageFactoryImpl = new VampireLanguageFactoryImpl(); | ||
53 | _extensionToFactoryMap.put("*", _vampireLanguageFactoryImpl); | ||
54 | _xblockexpression = workspace.<VampireModel>readModel(VampireModel.class, SOLNNAME).eResource().getContents(); | ||
55 | } | 47 | } |
56 | return _xblockexpression; | 48 | workspace.getFile(TEMPNAME).delete(); |
49 | final EList<EObject> root = workspace.<VampireModel>readModel(VampireModel.class, SOLNNAME).eResource().getContents(); | ||
50 | EObject _get = root.get(0); | ||
51 | InputOutput.<EList<VLSComment>>println(((VampireModelImpl) _get).getComments()); | ||
52 | return root; | ||
57 | } catch (Throwable _e) { | 53 | } catch (Throwable _e) { |
58 | throw Exceptions.sneakyThrow(_e); | 54 | throw Exceptions.sneakyThrow(_e); |
59 | } | 55 | } |