diff options
author | 2019-04-04 14:43:17 -0400 | |
---|---|---|
committer | 2020-06-07 19:36:03 -0400 | |
commit | 844c46e8a3620c7fae26f87e148643b32480dced (patch) | |
tree | 9252d89ef05bd9f4e5aafc9575155ebb3ee59211 /Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend | |
parent | Add to containment, add notObject case. (diff) | |
download | VIATRA-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.xtend | 18 |
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 |