aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-04-04 14:43:17 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2020-06-07 19:36:03 -0400
commit844c46e8a3620c7fae26f87e148643b32480dced (patch)
tree9252d89ef05bd9f4e5aafc9575155ebb3ee59211 /Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
parentAdd to containment, add notObject case. (diff)
downloadVIATRA-Generator-844c46e8a3620c7fae26f87e148643b32480dced.tar.gz
VIATRA-Generator-844c46e8a3620c7fae26f87e148643b32480dced.tar.zst
VIATRA-Generator-844c46e8a3620c7fae26f87e148643b32480dced.zip
Closes #34, adds code to test cases where minScope>maxScope.
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend18
1 files changed, 15 insertions, 3 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
index bc87d3b7..54fcdc86 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend
@@ -24,11 +24,12 @@ class Logic2VampireLanguageMapper_ScopeMapper {
24 } 24 }
25 25
26 def dispatch public void transformScope(LogicSolverConfiguration config, Logic2VampireLanguageMapperTrace trace) { 26 def dispatch public void transformScope(LogicSolverConfiguration config, Logic2VampireLanguageMapperTrace trace) {
27 val ABSOLUTE_MIN = 0
28 val ABSOLUTE_MAX = Integer.MAX_VALUE
27 29
28// TODO HANDLE ERRORS RELATED TO MAX > MIN 30// TODO HANDLE ERRORS RELATED TO MAX > MIN
29// TODO HANDLE ERROR RELATED TO SUM(MIN TYPES)+1(for root) > MAX OBJECTS 31// TODO HANDLE ERROR RELATED TO SUM(MIN TYPES)+1(for root) > MAX OBJECTS
30// TODO HANDLE 32// TODO HANDLE
31// TODO NOT SPECIFIED MEANS =0 ?
32 // 1. make a list of constants equaling the min number of specified objects 33 // 1. make a list of constants equaling the min number of specified objects
33 val GLOBAL_MIN = config.typeScopes.minNewElements 34 val GLOBAL_MIN = config.typeScopes.minNewElements
34 val GLOBAL_MAX = config.typeScopes.maxNewElements 35 val GLOBAL_MAX = config.typeScopes.maxNewElements
@@ -36,19 +37,30 @@ class Logic2VampireLanguageMapper_ScopeMapper {
36 val localInstances = newArrayList 37 val localInstances = newArrayList
37 38
38 // Handling Minimum_General 39 // Handling Minimum_General
39 if (GLOBAL_MIN != 0) { 40 if (GLOBAL_MIN != ABSOLUTE_MIN) {
40 getInstanceConstants(GLOBAL_MIN, 0, localInstances, trace, true, false) 41 getInstanceConstants(GLOBAL_MIN, 0, localInstances, trace, true, false)
41 for (i : trace.uniqueInstances) { 42 for (i : trace.uniqueInstances) {
42 localInstances.add(support.duplicate(i)) 43 localInstances.add(support.duplicate(i))
43 } 44 }
44 45
45 makeFofFormula(localInstances, trace, true, null) 46 makeFofFormula(localInstances, trace, true, null)
47
48// //For testing Min>Max scope
49// getInstanceConstants(GLOBAL_MIN, 0, localInstances, trace, true, true)
50// makeFofFormula(trace.uniqueInstances as ArrayList, trace, true, null)
51// //end for testing
52
46 } 53 }
47 54
48 // Handling Maximum_General 55 // Handling Maximum_General
49 if (GLOBAL_MAX != 0) { 56 if (GLOBAL_MAX != ABSOLUTE_MAX) {
50 getInstanceConstants(GLOBAL_MAX, 0, localInstances, trace, true, true) 57 getInstanceConstants(GLOBAL_MAX, 0, localInstances, trace, true, true)
51 makeFofFormula(trace.uniqueInstances as ArrayList, trace, false, null) 58 makeFofFormula(trace.uniqueInstances as ArrayList, trace, false, null)
59
60// //For testing Min>Max scope
61// getInstanceConstants(GLOBAL_MAX, 0, localInstances, trace, true, false)
62// makeFofFormula(localInstances, trace, false, null)
63// //end for testing
52 } 64 }
53 65
54 // Handling Minimum_Specific 66 // Handling Minimum_Specific