aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java175
1 files changed, 148 insertions, 27 deletions
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 432b14c3..3e3bd688 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
@@ -5,12 +5,15 @@ import ca.mcgill.ecse.dslreasoner.VampireLanguageStandaloneSetupGenerated;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; 6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper;
7import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; 7import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace;
8import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support;
8import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.MonitoredVampireSolution; 9import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.MonitoredVampireSolution;
9import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper; 10import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper;
10import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler; 11import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler;
11import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation; 12import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation;
13import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory;
12import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; 14import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage;
13import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; 15import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel;
16import com.google.common.base.Objects;
14import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; 17import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
15import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation; 18import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation;
16import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; 19import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
@@ -19,13 +22,25 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration;
19import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; 22import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
20import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 23import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
21import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; 24import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
25import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory;
22import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 26import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
27import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.RealStatisticEntry;
28import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StatisticEntry;
29import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.Statistics;
30import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry;
23import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; 31import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
32import java.util.ArrayList;
24import java.util.List; 33import java.util.List;
25import org.eclipse.emf.common.util.EList; 34import org.eclipse.emf.common.util.EList;
26import org.eclipse.xtend2.lib.StringConcatenation; 35import org.eclipse.xtend2.lib.StringConcatenation;
36import org.eclipse.xtext.xbase.lib.CollectionLiterals;
37import org.eclipse.xtext.xbase.lib.Exceptions;
38import org.eclipse.xtext.xbase.lib.Extension;
27import org.eclipse.xtext.xbase.lib.Functions.Function1; 39import org.eclipse.xtext.xbase.lib.Functions.Function1;
40import org.eclipse.xtext.xbase.lib.InputOutput;
28import org.eclipse.xtext.xbase.lib.ListExtensions; 41import org.eclipse.xtext.xbase.lib.ListExtensions;
42import org.eclipse.xtext.xbase.lib.ObjectExtensions;
43import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
29 44
30@SuppressWarnings("all") 45@SuppressWarnings("all")
31public class VampireSolver extends LogicReasoner { 46public class VampireSolver extends LogicReasoner {
@@ -41,36 +56,142 @@ public class VampireSolver extends LogicReasoner {
41 56
42 private final VampireHandler handler = new VampireHandler(); 57 private final VampireHandler handler = new VampireHandler();
43 58
59 private final Logic2VampireLanguageMapper_Support support = new Logic2VampireLanguageMapper_Support();
60
61 @Extension
62 private final LogicresultFactory resultFactory = LogicresultFactory.eINSTANCE;
63
64 @Extension
65 private final VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE;
66
44 @Override 67 @Override
45 public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace) throws LogicReasonerException { 68 public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace) throws LogicReasonerException {
46 final VampireSolverConfiguration vampireConfig = this.asConfig(config); 69 try {
47 String fileName = (((("problem_" + Integer.valueOf(vampireConfig.typeScopes.minNewElements)) + "-") + Integer.valueOf(vampireConfig.typeScopes.maxNewElements)) + ".tptp"); 70 final VampireSolverConfiguration vampireConfig = this.asConfig(config);
48 final long transformationStart = System.currentTimeMillis(); 71 String fileName = (((("problem_" + Integer.valueOf(vampireConfig.typeScopes.minNewElements)) + "-") +
49 final TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace> result = this.forwardMapper.transformProblem(problem, vampireConfig); 72 Integer.valueOf(vampireConfig.typeScopes.maxNewElements)) + ".tptp");
50 long _currentTimeMillis = System.currentTimeMillis(); 73 final long transformationStart = System.currentTimeMillis();
51 final long transformationTime = (_currentTimeMillis - transformationStart); 74 final TracedOutput<VampireModel, Logic2VampireLanguageMapperTrace> result = this.forwardMapper.transformProblem(problem, vampireConfig);
52 final VampireModel vampireProblem = result.getOutput(); 75 long _currentTimeMillis = System.currentTimeMillis();
53 final Logic2VampireLanguageMapperTrace forwardTrace = result.getTrace(); 76 final long transformationTime = (_currentTimeMillis - transformationStart);
54 String fileURI = null; 77 final VampireModel vampireProblem = result.getOutput();
55 String vampireCode = null; 78 final Logic2VampireLanguageMapperTrace forwardTrace = result.getTrace();
56 vampireCode = workspace.writeModelToString(vampireProblem, fileName); 79 String fileURI = null;
57 final boolean writeFile = ((vampireConfig.documentationLevel == DocumentationLevel.NORMAL) || 80 String vampireCode = null;
58 (vampireConfig.documentationLevel == DocumentationLevel.FULL)); 81 vampireCode = workspace.writeModelToString(vampireProblem, fileName);
59 if (writeFile) { 82 final boolean writeFile = ((vampireConfig.documentationLevel == DocumentationLevel.NORMAL) ||
60 fileURI = workspace.writeModel(vampireProblem, fileName).toFileString(); 83 (vampireConfig.documentationLevel == DocumentationLevel.FULL));
61 } 84 if (writeFile) {
62 if (vampireConfig.genModel) { 85 fileURI = workspace.writeModel(vampireProblem, fileName).toFileString();
63 final MonitoredVampireSolution vampSol = this.handler.callSolver(vampireProblem, workspace, vampireConfig); 86 }
64 final long backTransformationStart = System.currentTimeMillis(); 87 if (vampireConfig.genModel) {
65 final ModelResult logicResult = this.backwardMapper.transformOutput(problem, 88 if (vampireConfig.server) {
66 vampireConfig.solutionScope.numberOfRequiredSolution, vampSol, forwardTrace, transformationTime); 89 final String form = this.support.makeForm(vampireCode, vampireConfig.solver, vampireConfig.runtimeLimit);
67 long _currentTimeMillis_1 = System.currentTimeMillis(); 90 ArrayList<String> response = CollectionLiterals.<String>newArrayList();
68 final long backTransformationTime = (_currentTimeMillis_1 - backTransformationStart); 91 int ind = 0;
69 return logicResult; 92 boolean done = false;
93 InputOutput.<String>print(" ");
94 while ((!done)) {
95 {
96 InputOutput.<String>print("(x)");
97 done = false;
98 response = this.support.sendPost(form);
99 boolean responseFound = false;
100 ind = 0;
101 while ((!responseFound)) {
102 {
103 String line = response.get(ind);
104 if (((line.length() >= 5) && Objects.equal(line.substring(0, 5), "ERROR"))) {
105 done = false;
106 responseFound = true;
107 } else {
108 boolean _equals = Objects.equal(line, "</PRE>");
109 if (_equals) {
110 done = true;
111 responseFound = true;
112 }
113 }
114 ind++;
115 }
116 }
117 }
118 }
119 final String satRaw = response.get((ind - 3));
120 final String modRaw = response.get((ind - 2));
121 final ArrayList<String> sat = CollectionLiterals.<String>newArrayList(satRaw.split(" "));
122 final ArrayList<String> mod = CollectionLiterals.<String>newArrayList(modRaw.split(" "));
123 final String satOut = sat.get(1);
124 final String modOut = mod.get(1);
125 final String satTime = sat.get(2);
126 final String modTime = mod.get(2);
127 InputOutput.println();
128 InputOutput.<ArrayList<String>>println(sat);
129 InputOutput.<ArrayList<String>>println(mod);
130 ModelResult _createModelResult = this.resultFactory.createModelResult();
131 final Procedure1<ModelResult> _function = (ModelResult it) -> {
132 it.setProblem(null);
133 EList<Object> _representation = it.getRepresentation();
134 VampireModel _createVampireModel = this.factory.createVampireModel();
135 final Procedure1<VampireModel> _function_1 = (VampireModel it_1) -> {
136 };
137 VampireModel _doubleArrow = ObjectExtensions.<VampireModel>operator_doubleArrow(_createVampireModel, _function_1);
138 _representation.add(_doubleArrow);
139 it.setTrace(it.getTrace());
140 Statistics _createStatistics = this.resultFactory.createStatistics();
141 final Procedure1<Statistics> _function_2 = (Statistics it_1) -> {
142 it_1.setTransformationTime(((int) transformationTime));
143 EList<StatisticEntry> _entries = it_1.getEntries();
144 StringStatisticEntry _createStringStatisticEntry = this.resultFactory.createStringStatisticEntry();
145 final Procedure1<StringStatisticEntry> _function_3 = (StringStatisticEntry it_2) -> {
146 it_2.setName("satOut");
147 it_2.setValue(satOut);
148 };
149 StringStatisticEntry _doubleArrow_1 = ObjectExtensions.<StringStatisticEntry>operator_doubleArrow(_createStringStatisticEntry, _function_3);
150 _entries.add(_doubleArrow_1);
151 EList<StatisticEntry> _entries_1 = it_1.getEntries();
152 RealStatisticEntry _createRealStatisticEntry = this.resultFactory.createRealStatisticEntry();
153 final Procedure1<RealStatisticEntry> _function_4 = (RealStatisticEntry it_2) -> {
154 it_2.setName("satTime");
155 it_2.setValue(Double.parseDouble(satTime));
156 };
157 RealStatisticEntry _doubleArrow_2 = ObjectExtensions.<RealStatisticEntry>operator_doubleArrow(_createRealStatisticEntry, _function_4);
158 _entries_1.add(_doubleArrow_2);
159 EList<StatisticEntry> _entries_2 = it_1.getEntries();
160 StringStatisticEntry _createStringStatisticEntry_1 = this.resultFactory.createStringStatisticEntry();
161 final Procedure1<StringStatisticEntry> _function_5 = (StringStatisticEntry it_2) -> {
162 it_2.setName("modOut");
163 it_2.setValue(modOut);
164 };
165 StringStatisticEntry _doubleArrow_3 = ObjectExtensions.<StringStatisticEntry>operator_doubleArrow(_createStringStatisticEntry_1, _function_5);
166 _entries_2.add(_doubleArrow_3);
167 EList<StatisticEntry> _entries_3 = it_1.getEntries();
168 RealStatisticEntry _createRealStatisticEntry_1 = this.resultFactory.createRealStatisticEntry();
169 final Procedure1<RealStatisticEntry> _function_6 = (RealStatisticEntry it_2) -> {
170 it_2.setName("modTime");
171 it_2.setValue(Double.parseDouble(modTime));
172 };
173 RealStatisticEntry _doubleArrow_4 = ObjectExtensions.<RealStatisticEntry>operator_doubleArrow(_createRealStatisticEntry_1, _function_6);
174 _entries_3.add(_doubleArrow_4);
175 };
176 Statistics _doubleArrow_1 = ObjectExtensions.<Statistics>operator_doubleArrow(_createStatistics, _function_2);
177 it.setStatistics(_doubleArrow_1);
178 };
179 return ObjectExtensions.<ModelResult>operator_doubleArrow(_createModelResult, _function);
180 } else {
181 final MonitoredVampireSolution vampSol = this.handler.callSolver(vampireProblem, workspace, vampireConfig);
182 final long backTransformationStart = System.currentTimeMillis();
183 final ModelResult logicResult = this.backwardMapper.transformOutput(problem,
184 vampireConfig.solutionScope.numberOfRequiredSolution, vampSol, forwardTrace, transformationTime);
185 long _currentTimeMillis_1 = System.currentTimeMillis();
186 final long backTransformationTime = (_currentTimeMillis_1 - backTransformationStart);
187 return logicResult;
188 }
189 }
190 MonitoredVampireSolution _monitoredVampireSolution = new MonitoredVampireSolution((-1), null);
191 return this.backwardMapper.transformOutput(problem, vampireConfig.solutionScope.numberOfRequiredSolution, _monitoredVampireSolution, forwardTrace, transformationTime);
192 } catch (Throwable _e) {
193 throw Exceptions.sneakyThrow(_e);
70 } 194 }
71 MonitoredVampireSolution _monitoredVampireSolution = new MonitoredVampireSolution((-1), null);
72 return this.backwardMapper.transformOutput(problem,
73 vampireConfig.solutionScope.numberOfRequiredSolution, _monitoredVampireSolution, forwardTrace, transformationTime);
74 } 195 }
75 196
76 public VampireSolverConfiguration asConfig(final LogicSolverConfiguration configuration) { 197 public VampireSolverConfiguration asConfig(final LogicSolverConfiguration configuration) {