aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.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_TypeMapper.xtend')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend23
1 files changed, 14 insertions, 9 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend
index 3bc945df..2f3af593 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper.xtend
@@ -44,14 +44,19 @@ class Logic2VampireLanguageMapper_TypeMapper {
44 44
45 // Create a VLSFunction for each Enum Element 45 // Create a VLSFunction for each Enum Element
46 val List<VLSFunction> orElems = newArrayList 46 val List<VLSFunction> orElems = newArrayList
47
47 for (e : type.elements) { 48 for (e : type.elements) {
49 val nameArray = e.name.split(" ")
50 var relNameVar = ""
51 if (nameArray.length == 3) {
52 relNameVar = support.toIDMultiple(nameArray.get(0), nameArray.get(2))
53 } else {
54 relNameVar = e.name
55 }
56 val relName = relNameVar
57
48 val enumElemPred = createVLSFunction => [ 58 val enumElemPred = createVLSFunction => [
49 val splitName = e.name.split(" ") 59 it.constant = support.toIDMultiple("e", relName)
50 if (splitName.length > 2) {
51 it.constant = support.toIDMultiple("e", splitName.get(0), splitName.get(2))
52 } else {
53 it.constant = support.toIDMultiple("e", splitName.get(0))
54 }
55 it.terms += support.duplicate(variable) 60 it.terms += support.duplicate(variable)
56 ] 61 ]
57 trace.element2Predicate.put(e, enumElemPred) 62 trace.element2Predicate.put(e, enumElemPred)
@@ -80,7 +85,7 @@ class Logic2VampireLanguageMapper_TypeMapper {
80 85
81 // Implement Enum Inheritence Hierarchy 86 // Implement Enum Inheritence Hierarchy
82 val res = createVLSFofFormula => [ 87 val res = createVLSFofFormula => [
83 it.name = support.toIDMultiple("typeDef", type.name.split(" ").get(0)) 88 it.name = support.toIDMultiple("typeDef", type.lookup(trace.type2Predicate).constant.toString)
84 it.fofRole = "axiom" 89 it.fofRole = "axiom"
85 it.fofFormula = createVLSUniversalQuantifier => [ 90 it.fofFormula = createVLSUniversalQuantifier => [
86 it.variables += support.duplicate(variable) 91 it.variables += support.duplicate(variable)
@@ -105,9 +110,9 @@ class Logic2VampireLanguageMapper_TypeMapper {
105 val cst = support.toConstant(cstTerm) 110 val cst = support.toConstant(cstTerm)
106 trace.uniqueInstances.add(cst) 111 trace.uniqueInstances.add(cst)
107 112
108 val index = i 113 val index = i-globalCounter
109 val enumScope = createVLSFofFormula => [ 114 val enumScope = createVLSFofFormula => [
110 it.name = support.toIDMultiple("enumScope", type.name.split(" ").get(0), 115 it.name = support.toIDMultiple("enumScope", type.lookup(trace.type2Predicate).constant.toString,
111 type.elements.get(index).name.split(" ").get(0)) 116 type.elements.get(index).name.split(" ").get(0))
112 it.fofRole = "axiom" 117 it.fofRole = "axiom"
113 it.fofFormula = createVLSUniversalQuantifier => [ 118 it.fofFormula = createVLSUniversalQuantifier => [