aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend6
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.xtend69
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.xtend28
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend24
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbinbin2382 -> 2399 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbinbin5941 -> 5941 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbinbin18004 -> 18006 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbinbin3137 -> 3137 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbinbin3164 -> 3164 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbinbin8246 -> 8245 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbinbin5890 -> 6090 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbinbin9766 -> 10536 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbinbin3223 -> 3223 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbinbin2643 -> 2643 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbinbin9048 -> 8978 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbinbin1720 -> 1720 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbinbin4908 -> 4908 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbinbin1491 -> 1491 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbinbin1688 -> 1688 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java6
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java73
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java36
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java46
25 files changed, 167 insertions, 125 deletions
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
index e2c15b75..54c44c72 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.xtend
@@ -238,7 +238,7 @@ class Logic2VampireLanguageMapper {
238 def dispatch protected VLSTerm transformTerm(InstanceOf instanceOf, Logic2VampireLanguageMapperTrace trace, 238 def dispatch protected VLSTerm transformTerm(InstanceOf instanceOf, Logic2VampireLanguageMapperTrace trace,
239 Map<Variable, VLSVariable> variables) { 239 Map<Variable, VLSVariable> variables) {
240 return createVLSFunction => [ 240 return createVLSFunction => [
241 it.constant = support.toIDMultiple("type", (instanceOf.range as ComplexTypeReference).referred.name) 241 it.constant = support.toIDMultiple("t", (instanceOf.range as ComplexTypeReference).referred.name)
242 it.terms += instanceOf.value.transformTerm(trace, variables) 242 it.terms += instanceOf.value.transformTerm(trace, variables)
243 ] 243 ]
244 } 244 }
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
index 60653a42..6f3b13ef 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.xtend
@@ -39,7 +39,7 @@ class Logic2VampireLanguageMapper_RelationMapper {
39 relationVar2VLS.put(variable, v) 39 relationVar2VLS.put(variable, v)
40 40
41 val varTypeComply = createVLSFunction => [ 41 val varTypeComply = createVLSFunction => [
42 it.constant = support.toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 42 it.constant = support.toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
43 it.terms += createVLSVariable => [ 43 it.terms += createVLSVariable => [
44 it.name = support.toIDMultiple("Var", variable.name) 44 it.name = support.toIDMultiple("Var", variable.name)
45 ] 45 ]
@@ -47,7 +47,7 @@ class Logic2VampireLanguageMapper_RelationMapper {
47 relationVar2TypeDecComply.put(variable, varTypeComply) 47 relationVar2TypeDecComply.put(variable, varTypeComply)
48 48
49 val varTypeRes = createVLSFunction => [ 49 val varTypeRes = createVLSFunction => [
50 it.constant = support.toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 50 it.constant = support.toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
51 it.terms += createVLSVariable => [ 51 it.terms += createVLSVariable => [
52 it.name = support.toIDMultiple("Var", variable.name) 52 it.name = support.toIDMultiple("Var", variable.name)
53 ] 53 ]
@@ -136,7 +136,7 @@ class Logic2VampireLanguageMapper_RelationMapper {
136 relationVar2VLS.add(v) 136 relationVar2VLS.add(v)
137 137
138 val varTypeComply = createVLSFunction => [ 138 val varTypeComply = createVLSFunction => [
139 it.constant = support.toIDMultiple("type", (r.parameters.get(i) as ComplexTypeReference).referred.name) 139 it.constant = support.toIDMultiple("t", (r.parameters.get(i) as ComplexTypeReference).referred.name)
140 it.terms += createVLSVariable => [ 140 it.terms += createVLSVariable => [
141 it.name = support.toIDMultiple("Var", i.toString) 141 it.name = support.toIDMultiple("Var", i.toString)
142 ] 142 ]
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 84aa521d..4b7ea3d0 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
@@ -18,7 +18,6 @@ class Logic2VampireLanguageMapper_ScopeMapper {
18 def dispatch public void transformScope(LogicSolverConfiguration config, Logic2VampireLanguageMapperTrace trace) { 18 def dispatch public void transformScope(LogicSolverConfiguration config, Logic2VampireLanguageMapperTrace trace) {
19 val VLSVariable variable = createVLSVariable => [it.name = "A"] 19 val VLSVariable variable = createVLSVariable => [it.name = "A"]
20 20
21
22 // 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
23 val List<VLSConstant> instances = newArrayList 22 val List<VLSConstant> instances = newArrayList
24 for (var i = 0; i < config.typeScopes.minNewElements; i++) { 23 for (var i = 0; i < config.typeScopes.minNewElements; i++) {
@@ -28,47 +27,37 @@ class Logic2VampireLanguageMapper_ScopeMapper {
28 ] 27 ]
29 instances.add(cst) 28 instances.add(cst)
30 } 29 }
31
32
33 // TODO: specify for the max
34
35 30
36 // 2. Create initial fof formula to specify the number of elems 31 // TODO: specify for the max
37 val cstDec = createVLSFofFormula => [ 32 if (config.typeScopes.minNewElements != 0) {
38 it.name = "typeScope" 33 // 2. Create initial fof formula to specify the number of elems
39 it.fofRole = "axiom" 34 val cstDec = createVLSFofFormula => [
40 it.fofFormula = createVLSUniversalQuantifier => [ 35 it.name = "typeScope"
41 it.variables += support.duplicate(variable) 36 it.fofRole = "axiom"
42 // check below 37 it.fofFormula = createVLSUniversalQuantifier => [
43 it.operand = createVLSEquivalent => [ 38 it.variables += support.duplicate(variable)
44 it.left = support.topLevelTypeFunc 39 // check below
45 it.right = support.unfoldOr(instances.map [ i | 40 it.operand = createVLSEquivalent => [
46 createVLSEquality => [ 41 it.left = support.topLevelTypeFunc
47 it.left = createVLSVariable => [it.name = variable.name] 42 it.right = support.unfoldOr(instances.map [ i |
48 it.right = i 43 createVLSEquality => [
49 ] 44 it.left = createVLSVariable => [it.name = variable.name]
50 ]) 45 it.right = i
46 ]
47 ])
48 ]
51 ] 49 ]
52 ] 50 ]
53 ] 51 trace.specification.formulas += cstDec
54 trace.specification.formulas += cstDec 52
55 53 // TODO: specify for scope per type
56 54 // 3. Specify uniqueness of elements
57 // TODO: specify for scope per type 55 val uniqueness = createVLSFofFormula => [
58 56 it.name = "typeUniqueness"
59 57 it.fofRole = "axiom"
60 58 it.fofFormula = support.establishUniqueness(instances)
61 // 3. Specify uniqueness of elements 59 ]
62 val uniqueness = createVLSFofFormula => [ 60 trace.specification.formulas += uniqueness
63 it.name = "typeUniqueness" 61 }
64 it.fofRole = "axiom"
65 it.fofFormula = support.unfoldOr(instances.map [ i |
66 createVLSEquality => [
67 it.left = createVLSVariable => [it.name = variable.name]
68 it.right = i
69 ]
70 ])
71 ]
72 trace.specification.formulas += cstDec
73 } 62 }
74} 63}
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 e69f0d51..06ec585c 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
@@ -13,6 +13,8 @@ import java.util.HashMap
13import java.util.List 13import java.util.List
14import java.util.Map 14import java.util.Map
15import org.eclipse.emf.common.util.EList 15import org.eclipse.emf.common.util.EList
16import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant
17import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSInequality
16 18
17class Logic2VampireLanguageMapper_Support { 19class Logic2VampireLanguageMapper_Support {
18 private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE 20 private val extension VampireLanguageFactory factory = VampireLanguageFactory.eINSTANCE
@@ -26,6 +28,7 @@ class Logic2VampireLanguageMapper_Support {
26 ids.split("\\s+").join("_") 28 ids.split("\\s+").join("_")
27 } 29 }
28 30
31 //TODO Make more general
29 def protected VLSVariable duplicate(VLSVariable vrbl) { 32 def protected VLSVariable duplicate(VLSVariable vrbl) {
30 return createVLSVariable => [it.name = vrbl.name] 33 return createVLSVariable => [it.name = vrbl.name]
31 } 34 }
@@ -38,6 +41,25 @@ class Logic2VampireLanguageMapper_Support {
38 ] 41 ]
39 ] 42 ]
40 } 43 }
44
45 //TODO Make more general
46 def establishUniqueness(List<VLSConstant> terms) {
47 val List<VLSInequality> eqs = newArrayList
48 for (t1 : terms.subList(1, terms.length)){
49 for (t2 : terms.subList(0, terms.indexOf(t1))){
50 val eq = createVLSInequality => [
51 //TEMP
52 it.left = createVLSConstant => [it.name = t2.name]
53 it.right = createVLSConstant => [it.name = t1.name]
54 //TEMP
55 ]
56 eqs.add(eq)
57 }
58 }
59
60 return unfoldAnd(eqs)
61
62 }
41 63
42 // Support Functions 64 // Support Functions
43 // booleans 65 // booleans
@@ -111,7 +133,7 @@ class Logic2VampireLanguageMapper_Support {
111 val typedefs = new ArrayList<VLSTerm> 133 val typedefs = new ArrayList<VLSTerm>
112 for (variable : expression.quantifiedVariables) { 134 for (variable : expression.quantifiedVariables) {
113 val eq = createVLSFunction => [ 135 val eq = createVLSFunction => [
114 it.constant = toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 136 it.constant = toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
115 it.terms += createVLSVariable => [ 137 it.terms += createVLSVariable => [
116 it.name = toIDMultiple("Var", variable.name) 138 it.name = toIDMultiple("Var", variable.name)
117 ] 139 ]
@@ -138,7 +160,7 @@ class Logic2VampireLanguageMapper_Support {
138 val typedefs = new ArrayList<VLSTerm> 160 val typedefs = new ArrayList<VLSTerm>
139 for (variable : expression.quantifiedVariables) { 161 for (variable : expression.quantifiedVariables) {
140 val eq = createVLSFunction => [ 162 val eq = createVLSFunction => [
141 it.constant = toIDMultiple("type", (variable.range as ComplexTypeReference).referred.name) 163 it.constant = toIDMultiple("t", (variable.range as ComplexTypeReference).referred.name)
142 it.terms += createVLSVariable => [ 164 it.terms += createVLSVariable => [
143 it.name = toIDMultiple("Var", variable.name) 165 it.name = toIDMultiple("Var", variable.name)
144 ] 166 ]
@@ -157,5 +179,7 @@ class Logic2VampireLanguageMapper_Support {
157 def protected withAddition(Map<Variable, VLSVariable> map1, Map<Variable, VLSVariable> map2) { 179 def protected withAddition(Map<Variable, VLSVariable> map1, Map<Variable, VLSVariable> map2) {
158 new HashMap(map1) => [putAll(map2)] 180 new HashMap(map1) => [putAll(map2)]
159 } 181 }
182
183
160 184
161} 185}
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend
index eed10656..88e1e23a 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtend
@@ -89,27 +89,25 @@ class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Logic2Vamp
89 89
90 // 3. For each non-abstract type, create an and sequence containing all typedeclaration predicates 90 // 3. For each non-abstract type, create an and sequence containing all typedeclaration predicates
91 // and store in a map 91 // and store in a map
92// val List<VLSTerm> type2PossibleNot = new ArrayList 92 for (t1 : types.filter[!isIsAbstract]) {
93// val List<VLSTerm> type2And = new ArrayList 93 for (t2 : types) {
94 for (type : types.filter[!isIsAbstract]) {
95 for (type2 : types) {
96 // possible improvement: check all supertypes and decide if negated or not based on negations/not negations of supertypes 94 // possible improvement: check all supertypes and decide if negated or not based on negations/not negations of supertypes
97 if (type == type2 || dfsSupertypeCheck(type, type2)) { 95 if (t1 == t2 || dfsSupertypeCheck(t1, t2)) {
98 typeTrace.type2PossibleNot.put(type2, createVLSFunction => [ 96 typeTrace.type2PossibleNot.put(t2, createVLSFunction => [
99 it.constant = type2.lookup(typeTrace.type2Predicate).constant 97 it.constant = t2.lookup(typeTrace.type2Predicate).constant
100 it.terms += createVLSVariable => [it.name = "A"] 98 it.terms += support.duplicate(variable)
101 ]) 99 ])
102 } else { 100 } else {
103 typeTrace.type2PossibleNot.put(type2, createVLSUnaryNegation => [ 101 typeTrace.type2PossibleNot.put(t2, createVLSUnaryNegation => [
104 it.operand = createVLSFunction => [ 102 it.operand = createVLSFunction => [
105 it.constant = type2.lookup(typeTrace.type2Predicate).constant 103 it.constant = t2.lookup(typeTrace.type2Predicate).constant
106 it.terms += createVLSVariable => [it.name = "A"] 104 it.terms += support.duplicate(variable)
107 ] 105 ]
108 ]) 106 ])
109 } 107 }
110// typeTrace.type2PossibleNot.put(type2, type2.lookup(typeTrace.type2Predicate)) 108// typeTrace.type2PossibleNot.put(type2, type2.lookup(typeTrace.type2Predicate))
111 } 109 }
112 typeTrace.type2And.put(type, support.unfoldAnd(new ArrayList<VLSTerm>(typeTrace.type2PossibleNot.values))) 110 typeTrace.type2And.put(t1, support.unfoldAnd(new ArrayList<VLSTerm>(typeTrace.type2PossibleNot.values)))
113// typeTrace.type2And.put(type, type.lookup(typeTrace.type2Predicate) ) 111// typeTrace.type2And.put(type, type.lookup(typeTrace.type2Predicate) )
114 typeTrace.type2PossibleNot.clear 112 typeTrace.type2PossibleNot.clear
115 } 113 }
@@ -123,7 +121,7 @@ class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Logic2Vamp
123 it.name = "hierarchyHandler" 121 it.name = "hierarchyHandler"
124 it.fofRole = "axiom" 122 it.fofRole = "axiom"
125 it.fofFormula = createVLSUniversalQuantifier => [ 123 it.fofFormula = createVLSUniversalQuantifier => [
126 it.variables += createVLSVariable => [it.name = "A"] 124 it.variables += support.duplicate(variable)
127 it.operand = createVLSEquivalent => [ 125 it.operand = createVLSEquivalent => [
128 it.left = support.topLevelTypeFunc 126 it.left = support.topLevelTypeFunc
129 it.right = support.unfoldOr(new ArrayList<VLSTerm>(typeTrace.type2And.values)) 127 it.right = support.unfoldOr(new ArrayList<VLSTerm>(typeTrace.type2And.values))
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
index 9a2a1b15..4a4eedf5 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
index ce05b92c..55f0ac1e 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
index 379d0683..e91f89cc 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin
index 76dd192f..154ff393 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
index 936ab9ca..5d6ad730 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
index e0f442f5..7c787543 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
index 493ff288..34f3b285 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
index 13281767..f8d6cd3f 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
index 1a777880..7b2b11f8 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
index e8658e7b..7e8336e2 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapperTrace_FilteredTypes.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
index aec1688a..a2229dba 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
index e77b9866..d82649ff 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
index 100a52b8..030a0be9 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin
index 231c1995..87203ed8 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin
index b67a307c..65689b0c 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin
Binary files differ
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
index 89c9637e..6643576f 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper.java
@@ -273,7 +273,7 @@ public class Logic2VampireLanguageMapper {
273 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 273 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
274 final Procedure1<VLSFunction> _function = (VLSFunction it) -> { 274 final Procedure1<VLSFunction> _function = (VLSFunction it) -> {
275 TypeReference _range = instanceOf.getRange(); 275 TypeReference _range = instanceOf.getRange();
276 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 276 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
277 EList<VLSTerm> _terms = it.getTerms(); 277 EList<VLSTerm> _terms = it.getTerms();
278 VLSTerm _transformTerm = this.transformTerm(instanceOf.getValue(), trace, variables); 278 VLSTerm _transformTerm = this.transformTerm(instanceOf.getValue(), trace, variables);
279 _terms.add(_transformTerm); 279 _terms.add(_transformTerm);
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
index 561402a7..bce50fcc 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
@@ -61,7 +61,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
61 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 61 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
62 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 62 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
63 TypeReference _range = variable.getRange(); 63 TypeReference _range = variable.getRange();
64 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 64 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
65 EList<VLSTerm> _terms = it.getTerms(); 65 EList<VLSTerm> _terms = it.getTerms();
66 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 66 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
67 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 67 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
@@ -75,7 +75,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
75 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction(); 75 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction();
76 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> { 76 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> {
77 TypeReference _range = variable.getRange(); 77 TypeReference _range = variable.getRange();
78 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 78 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
79 EList<VLSTerm> _terms = it.getTerms(); 79 EList<VLSTerm> _terms = it.getTerms();
80 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 80 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
81 final Procedure1<VLSVariable> _function_3 = (VLSVariable it_1) -> { 81 final Procedure1<VLSVariable> _function_3 = (VLSVariable it_1) -> {
@@ -215,7 +215,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
215 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 215 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
216 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 216 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
217 TypeReference _get = r.getParameters().get((i).intValue()); 217 TypeReference _get = r.getParameters().get((i).intValue());
218 it.setConstant(this.support.toIDMultiple("type", ((ComplexTypeReference) _get).getReferred().getName())); 218 it.setConstant(this.support.toIDMultiple("t", ((ComplexTypeReference) _get).getReferred().getName()));
219 EList<VLSTerm> _terms = it.getTerms(); 219 EList<VLSTerm> _terms = it.getTerms();
220 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 220 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
221 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 221 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java
index 86d8b648..8967839d 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_ScopeMapper.java
@@ -51,42 +51,53 @@ public class Logic2VampireLanguageMapper_ScopeMapper {
51 instances.add(cst); 51 instances.add(cst);
52 } 52 }
53 } 53 }
54 VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula(); 54 if ((config.typeScopes.minNewElements != 0)) {
55 final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> { 55 VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula();
56 it.setName("typeScope"); 56 final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> {
57 it.setFofRole("axiom"); 57 it.setName("typeScope");
58 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); 58 it.setFofRole("axiom");
59 final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> { 59 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier();
60 EList<VLSVariable> _variables = it_1.getVariables(); 60 final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> {
61 VLSVariable _duplicate = this.support.duplicate(variable); 61 EList<VLSVariable> _variables = it_1.getVariables();
62 _variables.add(_duplicate); 62 VLSVariable _duplicate = this.support.duplicate(variable);
63 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); 63 _variables.add(_duplicate);
64 final Procedure1<VLSEquivalent> _function_3 = (VLSEquivalent it_2) -> { 64 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent();
65 it_2.setLeft(this.support.topLevelTypeFunc()); 65 final Procedure1<VLSEquivalent> _function_3 = (VLSEquivalent it_2) -> {
66 final Function1<VLSConstant, VLSEquality> _function_4 = (VLSConstant i) -> { 66 it_2.setLeft(this.support.topLevelTypeFunc());
67 VLSEquality _createVLSEquality = this.factory.createVLSEquality(); 67 final Function1<VLSConstant, VLSEquality> _function_4 = (VLSConstant i) -> {
68 final Procedure1<VLSEquality> _function_5 = (VLSEquality it_3) -> { 68 VLSEquality _createVLSEquality = this.factory.createVLSEquality();
69 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 69 final Procedure1<VLSEquality> _function_5 = (VLSEquality it_3) -> {
70 final Procedure1<VLSVariable> _function_6 = (VLSVariable it_4) -> { 70 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable();
71 it_4.setName(variable.getName()); 71 final Procedure1<VLSVariable> _function_6 = (VLSVariable it_4) -> {
72 it_4.setName(variable.getName());
73 };
74 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_6);
75 it_3.setLeft(_doubleArrow);
76 it_3.setRight(i);
72 }; 77 };
73 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_6); 78 return ObjectExtensions.<VLSEquality>operator_doubleArrow(_createVLSEquality, _function_5);
74 it_3.setLeft(_doubleArrow);
75 it_3.setRight(i);
76 }; 79 };
77 return ObjectExtensions.<VLSEquality>operator_doubleArrow(_createVLSEquality, _function_5); 80 it_2.setRight(this.support.unfoldOr(ListExtensions.<VLSConstant, VLSEquality>map(instances, _function_4)));
78 }; 81 };
79 it_2.setRight(this.support.unfoldOr(ListExtensions.<VLSConstant, VLSEquality>map(instances, _function_4))); 82 VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_3);
83 it_1.setOperand(_doubleArrow);
80 }; 84 };
81 VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_3); 85 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_2);
82 it_1.setOperand(_doubleArrow); 86 it.setFofFormula(_doubleArrow);
83 }; 87 };
84 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_2); 88 final VLSFofFormula cstDec = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula, _function_1);
85 it.setFofFormula(_doubleArrow); 89 EList<VLSFofFormula> _formulas = trace.specification.getFormulas();
86 }; 90 _formulas.add(cstDec);
87 final VLSFofFormula cstDec = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula, _function_1); 91 VLSFofFormula _createVLSFofFormula_1 = this.factory.createVLSFofFormula();
88 EList<VLSFofFormula> _formulas = trace.specification.getFormulas(); 92 final Procedure1<VLSFofFormula> _function_2 = (VLSFofFormula it) -> {
89 _formulas.add(cstDec); 93 it.setName("typeUniqueness");
94 it.setFofRole("axiom");
95 it.setFofFormula(this.support.establishUniqueness(instances));
96 };
97 final VLSFofFormula uniqueness = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula_1, _function_2);
98 EList<VLSFofFormula> _formulas_1 = trace.specification.getFormulas();
99 _formulas_1.add(uniqueness);
100 }
90 } 101 }
91 102
92 public void transformScope(final LogicSolverConfiguration config, final Logic2VampireLanguageMapperTrace trace) { 103 public void transformScope(final LogicSolverConfiguration config, final Logic2VampireLanguageMapperTrace trace) {
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java
index b111732f..dfe624be 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_Support.java
@@ -3,6 +3,7 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder;
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper; 3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace; 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapperTrace;
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd; 5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSConstant;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier; 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSExistentialQuantifier;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction; 8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFunction;
8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies; 9import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSImplies;
@@ -25,6 +26,7 @@ import java.util.List;
25import java.util.Map; 26import java.util.Map;
26import org.eclipse.emf.common.util.EList; 27import org.eclipse.emf.common.util.EList;
27import org.eclipse.xtend2.lib.StringConcatenation; 28import org.eclipse.xtend2.lib.StringConcatenation;
29import org.eclipse.xtext.xbase.lib.CollectionLiterals;
28import org.eclipse.xtext.xbase.lib.Conversions; 30import org.eclipse.xtext.xbase.lib.Conversions;
29import org.eclipse.xtext.xbase.lib.ExclusiveRange; 31import org.eclipse.xtext.xbase.lib.ExclusiveRange;
30import org.eclipse.xtext.xbase.lib.Extension; 32import org.eclipse.xtext.xbase.lib.Extension;
@@ -73,6 +75,36 @@ public class Logic2VampireLanguageMapper_Support {
73 return ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function); 75 return ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function);
74 } 76 }
75 77
78 public VLSTerm establishUniqueness(final List<VLSConstant> terms) {
79 final List<VLSInequality> eqs = CollectionLiterals.<VLSInequality>newArrayList();
80 List<VLSConstant> _subList = terms.subList(1, ((Object[])Conversions.unwrapArray(terms, Object.class)).length);
81 for (final VLSConstant t1 : _subList) {
82 List<VLSConstant> _subList_1 = terms.subList(0, terms.indexOf(t1));
83 for (final VLSConstant t2 : _subList_1) {
84 {
85 VLSInequality _createVLSInequality = this.factory.createVLSInequality();
86 final Procedure1<VLSInequality> _function = (VLSInequality it) -> {
87 VLSConstant _createVLSConstant = this.factory.createVLSConstant();
88 final Procedure1<VLSConstant> _function_1 = (VLSConstant it_1) -> {
89 it_1.setName(t2.getName());
90 };
91 VLSConstant _doubleArrow = ObjectExtensions.<VLSConstant>operator_doubleArrow(_createVLSConstant, _function_1);
92 it.setLeft(_doubleArrow);
93 VLSConstant _createVLSConstant_1 = this.factory.createVLSConstant();
94 final Procedure1<VLSConstant> _function_2 = (VLSConstant it_1) -> {
95 it_1.setName(t1.getName());
96 };
97 VLSConstant _doubleArrow_1 = ObjectExtensions.<VLSConstant>operator_doubleArrow(_createVLSConstant_1, _function_2);
98 it.setRight(_doubleArrow_1);
99 };
100 final VLSInequality eq = ObjectExtensions.<VLSInequality>operator_doubleArrow(_createVLSInequality, _function);
101 eqs.add(eq);
102 }
103 }
104 }
105 return this.unfoldAnd(eqs);
106 }
107
76 protected VLSTerm unfoldAnd(final List<? extends VLSTerm> operands) { 108 protected VLSTerm unfoldAnd(final List<? extends VLSTerm> operands) {
77 int _size = operands.size(); 109 int _size = operands.size();
78 boolean _equals = (_size == 1); 110 boolean _equals = (_size == 1);
@@ -180,7 +212,7 @@ public class Logic2VampireLanguageMapper_Support {
180 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 212 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
181 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 213 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
182 TypeReference _range = variable.getRange(); 214 TypeReference _range = variable.getRange();
183 it.setConstant(this.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 215 it.setConstant(this.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
184 EList<VLSTerm> _terms = it.getTerms(); 216 EList<VLSTerm> _terms = it.getTerms();
185 VLSVariable _createVLSVariable = this.factory.createVLSVariable(); 217 VLSVariable _createVLSVariable = this.factory.createVLSVariable();
186 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 218 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
@@ -229,7 +261,7 @@ public class Logic2VampireLanguageMapper_Support {
229 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 261 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
230 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> { 262 final Procedure1<VLSFunction> _function_1 = (VLSFunction it) -> {
231 TypeReference _range = variable.getRange(); 263 TypeReference _range = variable.getRange();
232 it.setConstant(this.toIDMultiple("type", ((ComplexTypeReference) _range).getReferred().getName())); 264 it.setConstant(this.toIDMultiple("t", ((ComplexTypeReference) _range).getReferred().getName()));
233 EList<VLSTerm> _terms = it.getTerms(); 265 EList<VLSTerm> _terms = it.getTerms();
234 VLSVariable _createVLSVariable = this.factory.createVLSVariable(); 266 VLSVariable _createVLSVariable = this.factory.createVLSVariable();
235 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> { 267 final Procedure1<VLSVariable> _function_2 = (VLSVariable it_1) -> {
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java
index 71e98871..1e845d94 100644
--- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java
+++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_TypeMapper_FilteredTypes.java
@@ -115,47 +115,39 @@ public class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Log
115 return Boolean.valueOf((!_isIsAbstract)); 115 return Boolean.valueOf((!_isIsAbstract));
116 }; 116 };
117 Iterable<Type> _filter_1 = IterableExtensions.<Type>filter(types, _function_1); 117 Iterable<Type> _filter_1 = IterableExtensions.<Type>filter(types, _function_1);
118 for (final Type type_2 : _filter_1) { 118 for (final Type t1 : _filter_1) {
119 { 119 {
120 for (final Type type2 : types) { 120 for (final Type t2 : types) {
121 if ((Objects.equal(type_2, type2) || this.dfsSupertypeCheck(type_2, type2))) { 121 if ((Objects.equal(t1, t2) || this.dfsSupertypeCheck(t1, t2))) {
122 VLSFunction _createVLSFunction = this.factory.createVLSFunction(); 122 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
123 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> { 123 final Procedure1<VLSFunction> _function_2 = (VLSFunction it) -> {
124 it.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(type2, typeTrace.type2Predicate).getConstant()); 124 it.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(t2, typeTrace.type2Predicate).getConstant());
125 EList<VLSTerm> _terms = it.getTerms(); 125 EList<VLSTerm> _terms = it.getTerms();
126 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 126 VLSVariable _duplicate = this.support.duplicate(variable);
127 final Procedure1<VLSVariable> _function_3 = (VLSVariable it_1) -> { 127 _terms.add(_duplicate);
128 it_1.setName("A");
129 };
130 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_3);
131 _terms.add(_doubleArrow);
132 }; 128 };
133 VLSFunction _doubleArrow = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_2); 129 VLSFunction _doubleArrow = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_2);
134 typeTrace.type2PossibleNot.put(type2, _doubleArrow); 130 typeTrace.type2PossibleNot.put(t2, _doubleArrow);
135 } else { 131 } else {
136 VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation(); 132 VLSUnaryNegation _createVLSUnaryNegation = this.factory.createVLSUnaryNegation();
137 final Procedure1<VLSUnaryNegation> _function_3 = (VLSUnaryNegation it) -> { 133 final Procedure1<VLSUnaryNegation> _function_3 = (VLSUnaryNegation it) -> {
138 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction(); 134 VLSFunction _createVLSFunction_1 = this.factory.createVLSFunction();
139 final Procedure1<VLSFunction> _function_4 = (VLSFunction it_1) -> { 135 final Procedure1<VLSFunction> _function_4 = (VLSFunction it_1) -> {
140 it_1.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(type2, typeTrace.type2Predicate).getConstant()); 136 it_1.setConstant(CollectionsUtil.<Type, VLSFunction>lookup(t2, typeTrace.type2Predicate).getConstant());
141 EList<VLSTerm> _terms = it_1.getTerms(); 137 EList<VLSTerm> _terms = it_1.getTerms();
142 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 138 VLSVariable _duplicate = this.support.duplicate(variable);
143 final Procedure1<VLSVariable> _function_5 = (VLSVariable it_2) -> { 139 _terms.add(_duplicate);
144 it_2.setName("A");
145 };
146 VLSVariable _doubleArrow_1 = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_5);
147 _terms.add(_doubleArrow_1);
148 }; 140 };
149 VLSFunction _doubleArrow_1 = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction_1, _function_4); 141 VLSFunction _doubleArrow_1 = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction_1, _function_4);
150 it.setOperand(_doubleArrow_1); 142 it.setOperand(_doubleArrow_1);
151 }; 143 };
152 VLSUnaryNegation _doubleArrow_1 = ObjectExtensions.<VLSUnaryNegation>operator_doubleArrow(_createVLSUnaryNegation, _function_3); 144 VLSUnaryNegation _doubleArrow_1 = ObjectExtensions.<VLSUnaryNegation>operator_doubleArrow(_createVLSUnaryNegation, _function_3);
153 typeTrace.type2PossibleNot.put(type2, _doubleArrow_1); 145 typeTrace.type2PossibleNot.put(t2, _doubleArrow_1);
154 } 146 }
155 } 147 }
156 Collection<VLSTerm> _values = typeTrace.type2PossibleNot.values(); 148 Collection<VLSTerm> _values = typeTrace.type2PossibleNot.values();
157 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values); 149 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values);
158 typeTrace.type2And.put(type_2, this.support.unfoldAnd(_arrayList)); 150 typeTrace.type2And.put(t1, this.support.unfoldAnd(_arrayList));
159 typeTrace.type2PossibleNot.clear(); 151 typeTrace.type2PossibleNot.clear();
160 } 152 }
161 } 153 }
@@ -166,21 +158,17 @@ public class Logic2VampireLanguageMapper_TypeMapper_FilteredTypes implements Log
166 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier(); 158 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier();
167 final Procedure1<VLSUniversalQuantifier> _function_3 = (VLSUniversalQuantifier it_1) -> { 159 final Procedure1<VLSUniversalQuantifier> _function_3 = (VLSUniversalQuantifier it_1) -> {
168 EList<VLSVariable> _variables = it_1.getVariables(); 160 EList<VLSVariable> _variables = it_1.getVariables();
169 VLSVariable _createVLSVariable_1 = this.factory.createVLSVariable(); 161 VLSVariable _duplicate = this.support.duplicate(variable);
170 final Procedure1<VLSVariable> _function_4 = (VLSVariable it_2) -> { 162 _variables.add(_duplicate);
171 it_2.setName("A");
172 };
173 VLSVariable _doubleArrow = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable_1, _function_4);
174 _variables.add(_doubleArrow);
175 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent(); 163 VLSEquivalent _createVLSEquivalent = this.factory.createVLSEquivalent();
176 final Procedure1<VLSEquivalent> _function_5 = (VLSEquivalent it_2) -> { 164 final Procedure1<VLSEquivalent> _function_4 = (VLSEquivalent it_2) -> {
177 it_2.setLeft(this.support.topLevelTypeFunc()); 165 it_2.setLeft(this.support.topLevelTypeFunc());
178 Collection<VLSTerm> _values = typeTrace.type2And.values(); 166 Collection<VLSTerm> _values = typeTrace.type2And.values();
179 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values); 167 ArrayList<VLSTerm> _arrayList = new ArrayList<VLSTerm>(_values);
180 it_2.setRight(this.support.unfoldOr(_arrayList)); 168 it_2.setRight(this.support.unfoldOr(_arrayList));
181 }; 169 };
182 VLSEquivalent _doubleArrow_1 = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_5); 170 VLSEquivalent _doubleArrow = ObjectExtensions.<VLSEquivalent>operator_doubleArrow(_createVLSEquivalent, _function_4);
183 it_1.setOperand(_doubleArrow_1); 171 it_1.setOperand(_doubleArrow);
184 }; 172 };
185 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_3); 173 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_3);
186 it.setFofFormula(_doubleArrow); 174 it.setFofFormula(_doubleArrow);