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:
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.xtend13
1 files changed, 7 insertions, 6 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 4b7ea3d0..e5dfbf08 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
@@ -19,13 +19,14 @@ class Logic2VampireLanguageMapper_ScopeMapper {
19 val VLSVariable variable = createVLSVariable => [it.name = "A"] 19 val VLSVariable variable = createVLSVariable => [it.name = "A"]
20 20
21 // 1. make a list of constants equaling the min number of specified objects 21 // 1. make a list of constants equaling the min number of specified objects
22 val List<VLSConstant> instances = newArrayList 22 val localInstances = newArrayList
23 for (var i = 0; i < config.typeScopes.minNewElements; i++) { 23 for (var i = 0; i < config.typeScopes.minNewElements; i++) {
24 val num = i + 1 24 val num = i + 1
25 val cst = createVLSConstant => [ 25 val cst = createVLSConstant => [
26 it.name = "o" + num 26 it.name = "o" + num
27 ] 27 ]
28 instances.add(cst) 28 trace.uniqueInstances.add(cst)
29 localInstances.add(cst)
29 } 30 }
30 31
31 // TODO: specify for the max 32 // TODO: specify for the max
@@ -37,14 +38,14 @@ class Logic2VampireLanguageMapper_ScopeMapper {
37 it.fofFormula = createVLSUniversalQuantifier => [ 38 it.fofFormula = createVLSUniversalQuantifier => [
38 it.variables += support.duplicate(variable) 39 it.variables += support.duplicate(variable)
39 // check below 40 // check below
40 it.operand = createVLSEquivalent => [ 41 it.operand = createVLSImplies => [
41 it.left = support.topLevelTypeFunc 42 it.left = support.unfoldOr(localInstances.map [ i |
42 it.right = support.unfoldOr(instances.map [ i |
43 createVLSEquality => [ 43 createVLSEquality => [
44 it.left = createVLSVariable => [it.name = variable.name] 44 it.left = createVLSVariable => [it.name = variable.name]
45 it.right = i 45 it.right = i
46 ] 46 ]
47 ]) 47 ])
48 it.right = support.topLevelTypeFunc
48 ] 49 ]
49 ] 50 ]
50 ] 51 ]
@@ -55,7 +56,7 @@ class Logic2VampireLanguageMapper_ScopeMapper {
55 val uniqueness = createVLSFofFormula => [ 56 val uniqueness = createVLSFofFormula => [
56 it.name = "typeUniqueness" 57 it.name = "typeUniqueness"
57 it.fofRole = "axiom" 58 it.fofRole = "axiom"
58 it.fofFormula = support.establishUniqueness(instances) 59 it.fofFormula = support.establishUniqueness(trace.uniqueInstances)
59 ] 60 ]
60 trace.specification.formulas += uniqueness 61 trace.specification.formulas += uniqueness
61 } 62 }