diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-03-06 17:26:43 -0500 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-03-06 17:26:43 -0500 |
commit | 5c4471e3a4cd273bf68eb2ccc1d91f99b5c8c7bc (patch) | |
tree | 7a2481581a3bc14a672f6e1f7965573853e62c04 /Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend | |
parent | Restructure Vampire Reasoner project (diff) | |
download | VIATRA-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.xtend | 29 |
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 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant | 3 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant |
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction | 4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction |
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunctionAsTerm | ||
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality | 6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality |
6 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm | 7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSTerm |
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSVariable | 8 | import 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) { |