aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend32
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 @@
1package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder 1package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder
2 2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput 8import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput
4import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And 9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.And
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion 10import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion
@@ -21,18 +26,14 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.InstanceOf
21import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral 26import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.IntLiteral
22import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not 27import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Not
23import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or 28import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Or
24import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RealLiteral
25import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation 29import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation
30import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration
26import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition 31import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition
27import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue 32import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.SymbolicValue
28import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term 33import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term
29import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable 34import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable
35import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDefinitionImpl
30import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem 36import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
31import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
32import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm
33import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable
34import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
35import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
36import java.util.Collections 37import java.util.Collections
37import java.util.HashMap 38import java.util.HashMap
38import java.util.List 39import java.util.List
@@ -40,7 +41,7 @@ import java.util.Map
40import org.eclipse.xtend.lib.annotations.Accessors 41import org.eclipse.xtend.lib.annotations.Accessors
41 42
42import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.* 43import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
43import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration 44import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.impl.RelationDeclarationImpl
44 45
45class Logic2VampireLanguageMapper { 46class 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 }