aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java
diff options
context:
space:
mode:
Diffstat (limited to 'Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java')
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/Logic2VampireLanguageMapper_RelationMapper.java92
1 files changed, 86 insertions, 6 deletions
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 143d3db5..c175c72a 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
@@ -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.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder.Logic2VampireLanguageMapper_Support;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSAnd;
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula; 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VLSFofFormula;
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;
@@ -17,11 +18,15 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration;
17import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition; 18import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDefinition;
18import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; 19import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
19import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference; 20import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeReference;
21import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Variable;
20import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil; 22import hu.bme.mit.inf.dslreasoner.util.CollectionsUtil;
21import java.util.ArrayList; 23import java.util.ArrayList;
22import java.util.Arrays; 24import java.util.Arrays;
25import java.util.HashMap;
23import java.util.List; 26import java.util.List;
27import java.util.Map;
24import org.eclipse.emf.common.util.EList; 28import org.eclipse.emf.common.util.EList;
29import org.eclipse.xtext.xbase.lib.CollectionLiterals;
25import org.eclipse.xtext.xbase.lib.Conversions; 30import org.eclipse.xtext.xbase.lib.Conversions;
26import org.eclipse.xtext.xbase.lib.ExclusiveRange; 31import org.eclipse.xtext.xbase.lib.ExclusiveRange;
27import org.eclipse.xtext.xbase.lib.Extension; 32import org.eclipse.xtext.xbase.lib.Extension;
@@ -41,7 +46,7 @@ public class Logic2VampireLanguageMapper_RelationMapper {
41 this.base = base; 46 this.base = base;
42 } 47 }
43 48
44 public void _transformRelation(final RelationDeclaration r, final Logic2VampireLanguageMapperTrace trace) { 49 public void _transformRelation(final RelationDeclaration r, final Logic2VampireLanguageMapperTrace trace, final Logic2VampireLanguageMapper mapper) {
45 final List<VLSVariable> relVar2VLS = new ArrayList<VLSVariable>(); 50 final List<VLSVariable> relVar2VLS = new ArrayList<VLSVariable>();
46 final List<VLSFunction> relVar2TypeDecComply = new ArrayList<VLSFunction>(); 51 final List<VLSFunction> relVar2TypeDecComply = new ArrayList<VLSFunction>();
47 int _length = ((Object[])Conversions.unwrapArray(r.getParameters(), Object.class)).length; 52 int _length = ((Object[])Conversions.unwrapArray(r.getParameters(), Object.class)).length;
@@ -109,19 +114,94 @@ public class Logic2VampireLanguageMapper_RelationMapper {
109 _formulas.add(comply); 114 _formulas.add(comply);
110 } 115 }
111 116
112 public void _transformRelation(final RelationDefinition reldef, final Logic2VampireLanguageMapperTrace trace) { 117 public void _transformRelation(final RelationDefinition r, final Logic2VampireLanguageMapperTrace trace, final Logic2VampireLanguageMapper mapper) {
118 final Map<Variable, VLSVariable> relVar2VLS = new HashMap<Variable, VLSVariable>();
119 final List<VLSVariable> vars = CollectionLiterals.<VLSVariable>newArrayList();
120 final List<VLSFunction> relVar2TypeDecComply = new ArrayList<VLSFunction>();
121 int _length = ((Object[])Conversions.unwrapArray(r.getParameters(), Object.class)).length;
122 ExclusiveRange _doubleDotLessThan = new ExclusiveRange(0, _length, true);
123 for (final Integer i : _doubleDotLessThan) {
124 {
125 VLSVariable _createVLSVariable = this.factory.createVLSVariable();
126 final Procedure1<VLSVariable> _function = (VLSVariable it) -> {
127 it.setName(this.support.toIDMultiple("V", i.toString()));
128 };
129 final VLSVariable v = ObjectExtensions.<VLSVariable>operator_doubleArrow(_createVLSVariable, _function);
130 relVar2VLS.put(r.getVariables().get((i).intValue()), v);
131 vars.add(v);
132 TypeReference _get = r.getParameters().get((i).intValue());
133 final Type relType = ((ComplexTypeReference) _get).getReferred();
134 final VLSFunction varTypeComply = this.support.duplicate(CollectionsUtil.<Type, VLSFunction>lookup(relType, trace.type2Predicate), v);
135 relVar2TypeDecComply.add(varTypeComply);
136 }
137 }
138 final String[] nameArray = r.getName().split(" ");
139 String relNameVar = "";
140 int _length_1 = nameArray.length;
141 boolean _equals = (_length_1 == 3);
142 if (_equals) {
143 relNameVar = this.support.toIDMultiple(nameArray[0], nameArray[2]);
144 } else {
145 relNameVar = r.getName();
146 }
147 final String relName = relNameVar;
148 final VLSTerm definition = mapper.transformTerm(r.getValue(), trace, relVar2VLS);
149 final VLSTerm compliance = this.support.unfoldAnd(relVar2TypeDecComply);
150 VLSAnd _createVLSAnd = this.factory.createVLSAnd();
151 final Procedure1<VLSAnd> _function = (VLSAnd it) -> {
152 it.setLeft(compliance);
153 it.setRight(definition);
154 };
155 final VLSAnd compDefn = ObjectExtensions.<VLSAnd>operator_doubleArrow(_createVLSAnd, _function);
156 VLSFofFormula _createVLSFofFormula = this.factory.createVLSFofFormula();
157 final Procedure1<VLSFofFormula> _function_1 = (VLSFofFormula it) -> {
158 it.setName(this.support.toID(relName));
159 it.setFofRole("axiom");
160 VLSUniversalQuantifier _createVLSUniversalQuantifier = this.factory.createVLSUniversalQuantifier();
161 final Procedure1<VLSUniversalQuantifier> _function_2 = (VLSUniversalQuantifier it_1) -> {
162 for (final VLSVariable v : vars) {
163 EList<VLSTffTerm> _variables = it_1.getVariables();
164 VLSVariable _duplicate = this.support.duplicate(v);
165 _variables.add(_duplicate);
166 }
167 VLSImplies _createVLSImplies = this.factory.createVLSImplies();
168 final Procedure1<VLSImplies> _function_3 = (VLSImplies it_2) -> {
169 VLSFunction _createVLSFunction = this.factory.createVLSFunction();
170 final Procedure1<VLSFunction> _function_4 = (VLSFunction it_3) -> {
171 it_3.setConstant(this.support.toIDMultiple("r", relName));
172 for (final VLSVariable v_1 : vars) {
173 EList<VLSTerm> _terms = it_3.getTerms();
174 VLSVariable _duplicate_1 = this.support.duplicate(v_1);
175 _terms.add(_duplicate_1);
176 }
177 };
178 final VLSFunction rel = ObjectExtensions.<VLSFunction>operator_doubleArrow(_createVLSFunction, _function_4);
179 trace.relDef2Predicate.put(r, rel);
180 trace.predicate2RelDef.put(rel, r);
181 it_2.setLeft(this.support.duplicate(rel));
182 it_2.setRight(compDefn);
183 };
184 VLSImplies _doubleArrow = ObjectExtensions.<VLSImplies>operator_doubleArrow(_createVLSImplies, _function_3);
185 it_1.setOperand(_doubleArrow);
186 };
187 VLSUniversalQuantifier _doubleArrow = ObjectExtensions.<VLSUniversalQuantifier>operator_doubleArrow(_createVLSUniversalQuantifier, _function_2);
188 it.setFofFormula(_doubleArrow);
189 };
190 final VLSFofFormula relDef = ObjectExtensions.<VLSFofFormula>operator_doubleArrow(_createVLSFofFormula, _function_1);
191 EList<VLSFofFormula> _formulas = trace.specification.getFormulas();
192 _formulas.add(relDef);
113 } 193 }
114 194
115 public void transformRelation(final Relation r, final Logic2VampireLanguageMapperTrace trace) { 195 public void transformRelation(final Relation r, final Logic2VampireLanguageMapperTrace trace, final Logic2VampireLanguageMapper mapper) {
116 if (r instanceof RelationDeclaration) { 196 if (r instanceof RelationDeclaration) {
117 _transformRelation((RelationDeclaration)r, trace); 197 _transformRelation((RelationDeclaration)r, trace, mapper);
118 return; 198 return;
119 } else if (r instanceof RelationDefinition) { 199 } else if (r instanceof RelationDefinition) {
120 _transformRelation((RelationDefinition)r, trace); 200 _transformRelation((RelationDefinition)r, trace, mapper);
121 return; 201 return;
122 } else { 202 } else {
123 throw new IllegalArgumentException("Unhandled parameter types: " + 203 throw new IllegalArgumentException("Unhandled parameter types: " +
124 Arrays.<Object>asList(r, trace).toString()); 204 Arrays.<Object>asList(r, trace, mapper).toString());
125 } 205 }
126 } 206 }
127} 207}