diff options
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore')
-rw-r--r-- | Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore | 203 |
1 files changed, 203 insertions, 0 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore new file mode 100644 index 00000000..5d8165a9 --- /dev/null +++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore | |||
@@ -0,0 +1,203 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
3 | xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="logiclanguage" nsURI="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" | ||
4 | nsPrefix="language"> | ||
5 | <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//TypeDescriptor"> | ||
6 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
7 | <eStructuralFeatures xsi:type="ecore:EReference" name="subtypes" upperBound="-1" | ||
8 | eType="#//Type" eOpposite="#//Type/supertypes"/> | ||
9 | <eStructuralFeatures xsi:type="ecore:EReference" name="supertypes" upperBound="-1" | ||
10 | eType="#//Type" eOpposite="#//Type/subtypes"/> | ||
11 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAbstract" lowerBound="1" | ||
12 | eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
13 | </eClassifiers> | ||
14 | <eClassifiers xsi:type="ecore:EClass" name="DefinedElement" eSuperTypes="#//SymbolicDeclaration"> | ||
15 | <eStructuralFeatures xsi:type="ecore:EReference" name="definedInType" lowerBound="1" | ||
16 | upperBound="-1" eType="#//TypeDefinition" eOpposite="#//TypeDefinition/elements"/> | ||
17 | </eClassifiers> | ||
18 | <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" eSuperTypes="#//Type"> | ||
19 | <eStructuralFeatures xsi:type="ecore:EReference" name="elements" upperBound="-1" | ||
20 | eType="#//DefinedElement" eOpposite="#//DefinedElement/definedInType"/> | ||
21 | <eStructuralFeatures xsi:type="ecore:EReference" name="defines" eType="#//TypeDeclaration"/> | ||
22 | </eClassifiers> | ||
23 | <eClassifiers xsi:type="ecore:EClass" name="TypeReference" abstract="true" eSuperTypes="#//TypeDescriptor"/> | ||
24 | <eClassifiers xsi:type="ecore:EClass" name="ComplexTypeReference" eSuperTypes="#//TypeReference"> | ||
25 | <eStructuralFeatures xsi:type="ecore:EReference" name="referred" eType="#//Type"/> | ||
26 | </eClassifiers> | ||
27 | <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeReference" abstract="true" | ||
28 | eSuperTypes="#//TypeReference"/> | ||
29 | <eClassifiers xsi:type="ecore:EClass" name="IntTypeReference" eSuperTypes="#//PrimitiveTypeReference"/> | ||
30 | <eClassifiers xsi:type="ecore:EClass" name="BoolTypeReference" eSuperTypes="#//PrimitiveTypeReference"/> | ||
31 | <eClassifiers xsi:type="ecore:EClass" name="RealTypeReference" eSuperTypes="#//PrimitiveTypeReference"/> | ||
32 | <eClassifiers xsi:type="ecore:EClass" name="Function" abstract="true" eSuperTypes="#//SymbolicDeclaration"> | ||
33 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" lowerBound="1" eType="#//TypeReference" | ||
34 | containment="true"/> | ||
35 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" | ||
36 | eType="#//TypeReference" containment="true"/> | ||
37 | <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" | ||
38 | eType="ecore:EClass logicproblem.ecore#//FunctionAnnotation" eOpposite="logicproblem.ecore#//FunctionAnnotation/target"/> | ||
39 | </eClassifiers> | ||
40 | <eClassifiers xsi:type="ecore:EClass" name="Term" abstract="true" eSuperTypes="#//TermDescription"/> | ||
41 | <eClassifiers xsi:type="ecore:EClass" name="SymbolicDeclaration" abstract="true" | ||
42 | eSuperTypes="#//TermDescription"> | ||
43 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
44 | </eClassifiers> | ||
45 | <eClassifiers xsi:type="ecore:EClass" name="SymbolicValue" eSuperTypes="#//Term"> | ||
46 | <eStructuralFeatures xsi:type="ecore:EReference" name="symbolicReference" eType="#//SymbolicDeclaration"/> | ||
47 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameterSubstitutions" | ||
48 | upperBound="-1" eType="#//Term" containment="true"/> | ||
49 | </eClassifiers> | ||
50 | <eClassifiers xsi:type="ecore:EClass" name="AtomicTerm" abstract="true" eSuperTypes="#//Term"/> | ||
51 | <eClassifiers xsi:type="ecore:EClass" name="IntLiteral" eSuperTypes="#//AtomicTerm"> | ||
52 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> | ||
53 | </eClassifiers> | ||
54 | <eClassifiers xsi:type="ecore:EClass" name="BoolLiteral" eSuperTypes="#//AtomicTerm"> | ||
55 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> | ||
56 | </eClassifiers> | ||
57 | <eClassifiers xsi:type="ecore:EClass" name="RealLiteral" eSuperTypes="#//AtomicTerm"> | ||
58 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigDecimal"/> | ||
59 | </eClassifiers> | ||
60 | <eClassifiers xsi:type="ecore:EClass" name="Variable" eSuperTypes="#//SymbolicDeclaration"> | ||
61 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" lowerBound="1" eType="#//TypeReference" | ||
62 | containment="true"/> | ||
63 | </eClassifiers> | ||
64 | <eClassifiers xsi:type="ecore:EClass" name="QuantifiedExpression" abstract="true" | ||
65 | eSuperTypes="#//Term"> | ||
66 | <eStructuralFeatures xsi:type="ecore:EReference" name="quantifiedVariables" upperBound="-1" | ||
67 | eType="#//Variable" containment="true"/> | ||
68 | <eStructuralFeatures xsi:type="ecore:EReference" name="expression" eType="#//Term" | ||
69 | containment="true"/> | ||
70 | </eClassifiers> | ||
71 | <eClassifiers xsi:type="ecore:EClass" name="Exists" eSuperTypes="#//QuantifiedExpression"/> | ||
72 | <eClassifiers xsi:type="ecore:EClass" name="Forall" eSuperTypes="#//QuantifiedExpression"/> | ||
73 | <eClassifiers xsi:type="ecore:EClass" name="BoolOperation" abstract="true" eSuperTypes="#//Term"/> | ||
74 | <eClassifiers xsi:type="ecore:EClass" name="And" eSuperTypes="#//BoolOperation"> | ||
75 | <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1" | ||
76 | eType="#//Term" containment="true"/> | ||
77 | </eClassifiers> | ||
78 | <eClassifiers xsi:type="ecore:EClass" name="Or" eSuperTypes="#//BoolOperation"> | ||
79 | <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1" | ||
80 | eType="#//Term" containment="true"/> | ||
81 | </eClassifiers> | ||
82 | <eClassifiers xsi:type="ecore:EClass" name="Impl" eSuperTypes="#//BoolOperation"> | ||
83 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
84 | containment="true"/> | ||
85 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
86 | containment="true"/> | ||
87 | </eClassifiers> | ||
88 | <eClassifiers xsi:type="ecore:EClass" name="Not" eSuperTypes="#//BoolOperation"> | ||
89 | <eStructuralFeatures xsi:type="ecore:EReference" name="operand" eType="#//Term" | ||
90 | containment="true"/> | ||
91 | </eClassifiers> | ||
92 | <eClassifiers xsi:type="ecore:EClass" name="Iff" eSuperTypes="#//BoolOperation"> | ||
93 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
94 | containment="true"/> | ||
95 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
96 | containment="true"/> | ||
97 | </eClassifiers> | ||
98 | <eClassifiers xsi:type="ecore:EClass" name="PrimitiveRelation" abstract="true" eSuperTypes="#//Term"/> | ||
99 | <eClassifiers xsi:type="ecore:EClass" name="Equals" eSuperTypes="#//PrimitiveRelation"> | ||
100 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
101 | containment="true"/> | ||
102 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
103 | containment="true"/> | ||
104 | </eClassifiers> | ||
105 | <eClassifiers xsi:type="ecore:EClass" name="Distinct" eSuperTypes="#//PrimitiveRelation"> | ||
106 | <eStructuralFeatures xsi:type="ecore:EReference" name="operands" upperBound="-1" | ||
107 | eType="#//Term" containment="true"/> | ||
108 | </eClassifiers> | ||
109 | <eClassifiers xsi:type="ecore:EClass" name="LessThan" eSuperTypes="#//PrimitiveRelation"> | ||
110 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
111 | containment="true"/> | ||
112 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
113 | containment="true"/> | ||
114 | </eClassifiers> | ||
115 | <eClassifiers xsi:type="ecore:EClass" name="MoreThan" eSuperTypes="#//PrimitiveRelation"> | ||
116 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
117 | containment="true"/> | ||
118 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
119 | containment="true"/> | ||
120 | </eClassifiers> | ||
121 | <eClassifiers xsi:type="ecore:EClass" name="LessOrEqualThan" eSuperTypes="#//PrimitiveRelation"> | ||
122 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
123 | containment="true"/> | ||
124 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
125 | containment="true"/> | ||
126 | </eClassifiers> | ||
127 | <eClassifiers xsi:type="ecore:EClass" name="MoreOrEqualThan" eSuperTypes="#//PrimitiveRelation"> | ||
128 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
129 | containment="true"/> | ||
130 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
131 | containment="true"/> | ||
132 | </eClassifiers> | ||
133 | <eClassifiers xsi:type="ecore:EClass" name="IntOperation" abstract="true" eSuperTypes="#//Term"> | ||
134 | <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" eType="#//Term" | ||
135 | containment="true"/> | ||
136 | <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" eType="#//Term" | ||
137 | containment="true"/> | ||
138 | </eClassifiers> | ||
139 | <eClassifiers xsi:type="ecore:EClass" name="Plus" eSuperTypes="#//IntOperation"/> | ||
140 | <eClassifiers xsi:type="ecore:EClass" name="Minus" eSuperTypes="#//IntOperation"/> | ||
141 | <eClassifiers xsi:type="ecore:EClass" name="Multiply" eSuperTypes="#//IntOperation"/> | ||
142 | <eClassifiers xsi:type="ecore:EClass" name="Divison" eSuperTypes="#//IntOperation"/> | ||
143 | <eClassifiers xsi:type="ecore:EClass" name="Mod" eSuperTypes="#//IntOperation"/> | ||
144 | <eClassifiers xsi:type="ecore:EClass" name="TypeDescriptor" abstract="true" interface="true"/> | ||
145 | <eClassifiers xsi:type="ecore:EClass" name="TermDescription" abstract="true" interface="true"/> | ||
146 | <eClassifiers xsi:type="ecore:EClass" name="Assertion"> | ||
147 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Term" | ||
148 | containment="true"/> | ||
149 | <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> | ||
150 | <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" | ||
151 | eType="ecore:EClass logicproblem.ecore#//AssertionAnnotation" eOpposite="logicproblem.ecore#//AssertionAnnotation/target"/> | ||
152 | </eClassifiers> | ||
153 | <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//SymbolicDeclaration"> | ||
154 | <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1" | ||
155 | eType="#//TypeReference" containment="true"/> | ||
156 | <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" | ||
157 | eType="ecore:EClass logicproblem.ecore#//RelationAnnotation" eOpposite="logicproblem.ecore#//RelationAnnotation/target"/> | ||
158 | </eClassifiers> | ||
159 | <eClassifiers xsi:type="ecore:EClass" name="Constant" abstract="true" eSuperTypes="#//SymbolicDeclaration"> | ||
160 | <eStructuralFeatures xsi:type="ecore:EReference" name="type" lowerBound="1" eType="#//TypeReference" | ||
161 | containment="true"/> | ||
162 | <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1" | ||
163 | eType="ecore:EClass logicproblem.ecore#//ConstantAnnotation" eOpposite="logicproblem.ecore#//ConstantAnnotation/target"/> | ||
164 | </eClassifiers> | ||
165 | <eClassifiers xsi:type="ecore:EClass" name="ConstantDefinition" eSuperTypes="#//Constant"> | ||
166 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Term" | ||
167 | containment="true"/> | ||
168 | <eStructuralFeatures xsi:type="ecore:EReference" name="defines" eType="#//ConstantDeclaration"/> | ||
169 | </eClassifiers> | ||
170 | <eClassifiers xsi:type="ecore:EClass" name="RelationDefinition" eSuperTypes="#//Relation"> | ||
171 | <eStructuralFeatures xsi:type="ecore:EReference" name="variables" upperBound="-1" | ||
172 | eType="#//Variable" containment="true"/> | ||
173 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Term" | ||
174 | containment="true"/> | ||
175 | <eStructuralFeatures xsi:type="ecore:EReference" name="defines" eType="#//RelationDeclaration"/> | ||
176 | </eClassifiers> | ||
177 | <eClassifiers xsi:type="ecore:EClass" name="FunctionDefinition" eSuperTypes="#//Function"> | ||
178 | <eStructuralFeatures xsi:type="ecore:EReference" name="variable" upperBound="-1" | ||
179 | eType="#//Variable" containment="true"/> | ||
180 | <eStructuralFeatures xsi:type="ecore:EReference" name="defines" eType="#//FunctionDeclaration"/> | ||
181 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Term" | ||
182 | containment="true"/> | ||
183 | </eClassifiers> | ||
184 | <eClassifiers xsi:type="ecore:EClass" name="IfThenElse" eSuperTypes="#//Term"> | ||
185 | <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1" | ||
186 | eType="#//Term" containment="true"/> | ||
187 | <eStructuralFeatures xsi:type="ecore:EReference" name="ifTrue" lowerBound="1" | ||
188 | eType="#//Term" containment="true"/> | ||
189 | <eStructuralFeatures xsi:type="ecore:EReference" name="ifFalse" lowerBound="1" | ||
190 | eType="#//Term" containment="true"/> | ||
191 | </eClassifiers> | ||
192 | <eClassifiers xsi:type="ecore:EClass" name="ConstantDeclaration" eSuperTypes="#//Constant"/> | ||
193 | <eClassifiers xsi:type="ecore:EClass" name="RelationDeclaration" eSuperTypes="#//Relation"/> | ||
194 | <eClassifiers xsi:type="ecore:EClass" name="FunctionDeclaration" eSuperTypes="#//Function"/> | ||
195 | <eClassifiers xsi:type="ecore:EClass" name="TypeDeclaration" eSuperTypes="#//Type"/> | ||
196 | <eClassifiers xsi:type="ecore:EClass" name="UnknownBecauseUninterpreted" eSuperTypes="#//Term"/> | ||
197 | <eClassifiers xsi:type="ecore:EClass" name="InstanceOf" eSuperTypes="#//Term"> | ||
198 | <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//Term" | ||
199 | containment="true"/> | ||
200 | <eStructuralFeatures xsi:type="ecore:EReference" name="range" lowerBound="1" eType="#//TypeReference" | ||
201 | containment="true"/> | ||
202 | </eClassifiers> | ||
203 | </ecore:EPackage> | ||