aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-06 17:26:43 -0500
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-06 17:26:43 -0500
commit5c4471e3a4cd273bf68eb2ccc1d91f99b5c8c7bc (patch)
tree7a2481581a3bc14a672f6e1f7965573853e62c04 /Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
parentRestructure Vampire Reasoner project (diff)
downloadVIATRA-Generator-5c4471e3a4cd273bf68eb2ccc1d91f99b5c8c7bc.tar.gz
VIATRA-Generator-5c4471e3a4cd273bf68eb2ccc1d91f99b5c8c7bc.tar.zst
VIATRA-Generator-5c4471e3a4cd273bf68eb2ccc1d91f99b5c8c7bc.zip
Implement Enum handling and study hierarchy handling
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend29
1 files changed, 29 insertions, 0 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
index d3595a73..021cb0ea 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend
@@ -2,6 +2,7 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder
2 2
3import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant 3import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant
4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction 4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionAsTerm
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality 6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable 8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable
@@ -36,6 +37,14 @@ class Logic2VampireLanguageMapper_Support {
36 def protected VLSVariable duplicate(VLSVariable term) { 37 def protected VLSVariable duplicate(VLSVariable term) {
37 return createVLSVariable => [it.name = term.name] 38 return createVLSVariable => [it.name = term.name]
38 } 39 }
40
41 def protected VLSFunctionAsTerm duplicate(VLSFunctionAsTerm term) {
42 return createVLSFunctionAsTerm => [it.functor = term.functor]
43 }
44
45 def protected VLSConstant duplicate(VLSConstant term) {
46 return createVLSConstant => [it.name = term.name]
47 }
39 48
40 def protected VLSFunction duplicate(VLSFunction term) { 49 def protected VLSFunction duplicate(VLSFunction term) {
41 return createVLSFunction => [ 50 return createVLSFunction => [
@@ -52,6 +61,19 @@ class Logic2VampireLanguageMapper_Support {
52 it.terms += duplicate(v) 61 it.terms += duplicate(v)
53 ] 62 ]
54 } 63 }
64
65 def protected VLSFunction duplicate(VLSFunction term, VLSFunctionAsTerm v) {
66 return createVLSFunction => [
67 it.constant = term.constant
68 it.terms += duplicate(v)
69 ]
70 }
71
72 def protected VLSConstant toConstant(VLSFunctionAsTerm term) {
73 return createVLSConstant => [
74 it.name = term.functor
75 ]
76 }
55 77
56 def protected VLSFunction topLevelTypeFunc() { 78 def protected VLSFunction topLevelTypeFunc() {
57 return createVLSFunction => [ 79 return createVLSFunction => [
@@ -61,6 +83,13 @@ class Logic2VampireLanguageMapper_Support {
61 ] 83 ]
62 ] 84 ]
63 } 85 }
86
87 def protected VLSFunction topLevelTypeFunc(VLSFunctionAsTerm v) {
88 return createVLSFunction => [
89 it.constant = "object"
90 it.terms += duplicate(v)
91 ]
92 }
64 93
65 // TODO Make more general 94 // TODO Make more general
66 def establishUniqueness(List<VLSConstant> terms) { 95 def establishUniqueness(List<VLSConstant> terms) {