diff options
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend')
-rw-r--r-- | Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend | 32 |
1 files changed, 22 insertions, 10 deletions
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 a2449fc0..14926280 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 | |||
@@ -1,5 +1,10 @@ | |||
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 | ||
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm | ||
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable | ||
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel | ||
3 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput | 8 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput |
4 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And | 9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And |
5 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion |
@@ -21,18 +26,14 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.InstanceOf | |||
21 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral | 26 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral |
22 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not | 27 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not |
23 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or | 28 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or |
24 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral | ||
25 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation | 29 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation |
30 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration | ||
26 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition | 31 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition |
27 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue | 32 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue |
28 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term | 33 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term |
29 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable | 34 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable |
35 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDefinitionImpl | ||
30 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem | 36 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem |
31 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | ||
32 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm | ||
33 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable | ||
34 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory | ||
35 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel | ||
36 | import java.util.Collections | 37 | import java.util.Collections |
37 | import java.util.HashMap | 38 | import java.util.HashMap |
38 | import java.util.List | 39 | import java.util.List |
@@ -40,7 +41,7 @@ import java.util.Map | |||
40 | import org.eclipse.xtend.lib.annotations.Accessors | 41 | import org.eclipse.xtend.lib.annotations.Accessors |
41 | 42 | ||
42 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* | 43 | import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* |
43 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration | 44 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDeclarationImpl |
44 | 45 | ||
45 | class Logic2VampireLanguageMapper { | 46 | class Logic2VampireLanguageMapper { |
46 | private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE | 47 | private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE |
@@ -81,7 +82,8 @@ class Logic2VampireLanguageMapper { | |||
81 | 82 | ||
82 | // RELATION MAPPER | 83 | // RELATION MAPPER |
83 | trace.relationDefinitions = problem.collectRelationDefinitions | 84 | trace.relationDefinitions = problem.collectRelationDefinitions |
84 | problem.relations.forEach[this.relationMapper.transformRelation(it, trace)] | 85 | // println(problem.relations.filter[class == RelationDefinitionImpl]) |
86 | problem.relations.forEach[this.relationMapper.transformRelation(it, trace, new Logic2VampireLanguageMapper)] | ||
85 | 87 | ||
86 | // CONTAINMENT MAPPER | 88 | // CONTAINMENT MAPPER |
87 | containmentMapper.transformContainment(config,problem.containmentHierarchies, trace) | 89 | containmentMapper.transformContainment(config,problem.containmentHierarchies, trace) |
@@ -140,7 +142,7 @@ class Logic2VampireLanguageMapper { | |||
140 | // //////////// | 142 | // //////////// |
141 | def protected transformAssertion(Assertion assertion, Logic2VampireLanguageMapperTrace trace) { | 143 | def protected transformAssertion(Assertion assertion, Logic2VampireLanguageMapperTrace trace) { |
142 | val res = createVLSFofFormula => [ | 144 | val res = createVLSFofFormula => [ |
143 | it.name = support.toID(assertion.name) | 145 | it.name = support.toID("assertion_" + assertion.name) |
144 | // below is temporary solution | 146 | // below is temporary solution |
145 | it.fofRole = "axiom" | 147 | it.fofRole = "axiom" |
146 | it.fofFormula = assertion.value.transformTerm(trace, Collections.EMPTY_MAP) | 148 | it.fofFormula = assertion.value.transformTerm(trace, Collections.EMPTY_MAP) |
@@ -378,8 +380,18 @@ class Logic2VampireLanguageMapper { | |||
378 | // it.referredDefinition = relation.lookup(trace.relationDefinition2Predicate) | 380 | // it.referredDefinition = relation.lookup(trace.relationDefinition2Predicate) |
379 | // it.params += parameterSubstitutions.map[p|p.transformTerm(trace, variables)] | 381 | // it.params += parameterSubstitutions.map[p|p.transformTerm(trace, variables)] |
380 | // ] | 382 | // ] |
383 | // println(relation.name) | ||
384 | // if(relation.class == RelationDefinitionImpl) { | ||
385 | // println("(" + (relation as RelationDefinition).getDefines + ")") | ||
386 | // } | ||
381 | return createVLSFunction => [ | 387 | return createVLSFunction => [ |
382 | it.constant = (relation as RelationDeclaration).lookup(trace.rel2Predicate).constant | 388 | if (relation.class == RelationDeclarationImpl) { |
389 | it.constant = (relation as RelationDeclaration).lookup(trace.rel2Predicate).constant | ||
390 | } | ||
391 | else { | ||
392 | it.constant = (relation as RelationDefinition).lookup(trace.relDef2Predicate).constant | ||
393 | } | ||
394 | |||
383 | it.terms += parameterSubstitutions.map[p|p.transformTerm(trace, variables)] | 395 | it.terms += parameterSubstitutions.map[p|p.transformTerm(trace, variables)] |
384 | ] | 396 | ] |
385 | } | 397 | } |