diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-10-11 15:51:49 -0400 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2020-06-07 19:43:17 -0400 |
commit | 606f6965f3ccec837aa216cbb3f56fdcf943a59b (patch) | |
tree | e9d1283f60b335de331b5e8abd93f040636f871b /Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java | |
parent | implement http requests for the TPTP server (diff) | |
download | VIATRA-Generator-606f6965f3ccec837aa216cbb3f56fdcf943a59b.tar.gz VIATRA-Generator-606f6965f3ccec837aa216cbb3f56fdcf943a59b.tar.zst VIATRA-Generator-606f6965f3ccec837aa216cbb3f56fdcf943a59b.zip |
VAMPIRE: complete testing setup
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.java | 175 |
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; | |||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; |
7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; | 7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; |
8 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; | ||
8 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.MonitoredVampireSolution; | 9 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.MonitoredVampireSolution; |
9 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper; | 10 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Vampire2LogicMapper; |
10 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler; | 11 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireHandler; |
11 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation; | 12 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.VampireModelInterpretation; |
13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory; | ||
12 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; | 14 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguagePackage; |
13 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; | 15 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; |
16 | import com.google.common.base.Objects; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; |
15 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation; | 18 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicModelInterpretation; |
16 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | 19 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; |
@@ -19,13 +22,25 @@ import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration; | |||
19 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | 22 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; |
20 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 23 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
21 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | 24 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; |
25 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicresultFactory; | ||
22 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; | 26 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; |
27 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.RealStatisticEntry; | ||
28 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StatisticEntry; | ||
29 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.Statistics; | ||
30 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry; | ||
23 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | 31 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; |
32 | import java.util.ArrayList; | ||
24 | import java.util.List; | 33 | import java.util.List; |
25 | import org.eclipse.emf.common.util.EList; | 34 | import org.eclipse.emf.common.util.EList; |
26 | import org.eclipse.xtend2.lib.StringConcatenation; | 35 | import org.eclipse.xtend2.lib.StringConcatenation; |
36 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
37 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
38 | import org.eclipse.xtext.xbase.lib.Extension; | ||
27 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | 39 | import org.eclipse.xtext.xbase.lib.Functions.Function1; |
40 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
28 | import org.eclipse.xtext.xbase.lib.ListExtensions; | 41 | import org.eclipse.xtext.xbase.lib.ListExtensions; |
42 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
43 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
29 | 44 | ||
30 | @SuppressWarnings("all") | 45 | @SuppressWarnings("all") |
31 | public class VampireSolver extends LogicReasoner { | 46 | public 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) { |