aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
blob: 99404f610003fe870994689c26558df2fce10fe0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="problem" nsURI="http://www.eclipse.org/viatra/solver/language/model/Problem"
    nsPrefix="problem">
  <eClassifiers xsi:type="ecore:EClass" name="Problem" eSuperTypes="#//NamedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
        eType="#//Node" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
        eType="#//Statement" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Relation" abstract="true" eSuperTypes="#//NamedElement"/>
  <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//Relation #//Statement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="superTypes" upperBound="-1"
        eType="#//Relation"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="referenceDeclarations"
        upperBound="-1" eType="#//ReferenceDeclaration" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="newNode" eType="#//Node"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation">
    <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//Statement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
        eType="#//Parameter" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodies" upperBound="-1"
        eType="#//Conjunction" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable">
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//VariableOrNode"/>
  <eClassifiers xsi:type="ecore:EClass" name="Conjunction" eSuperTypes="#//ExistentialQuantifier">
    <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
        eType="#//Literal" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="Atom" eSuperTypes="#//Literal">
    <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="transitiveClosure" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
        eType="#//Argument" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ImplicitVariable" eSuperTypes="#//Variable"/>
  <eClassifiers xsi:type="ecore:EClass" name="NegativeLiteral" eSuperTypes="#//ExistentialQuantifier #//Literal">
    <eStructuralFeatures xsi:type="ecore:EReference" name="atom" eType="#//Atom" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExistentialQuantifier" abstract="true"
      interface="true">
    <eStructuralFeatures xsi:type="ecore:EReference" name="implicitVariables" upperBound="-1"
        eType="#//ImplicitVariable" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Assertion" eSuperTypes="#//Statement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="relation" eType="#//Relation"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
        eType="#//Node"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//LogicValue"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//VariableOrNode"/>
  <eClassifiers xsi:type="ecore:EEnum" name="LogicValue">
    <eLiterals name="TRUE" literal="TRUE"/>
    <eLiterals name="FALSE" value="1"/>
    <eLiterals name="UNKNOWN" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ScopeDeclaration" eSuperTypes="#//Statement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="typeScopes" upperBound="-1"
        eType="#//TypeScope" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="TypeScope">
    <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//ClassDeclaration"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Multiplicity" abstract="true"/>
  <eClassifiers xsi:type="ecore:EClass" name="RangeMultiplicity" eSuperTypes="#//Multiplicity">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="0"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="-1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExactMultiplicity" eSuperTypes="#//Multiplicity">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="exactValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="UnboundedMultiplicity" eSuperTypes="#//Multiplicity"/>
  <eClassifiers xsi:type="ecore:EClass" name="Argument">
    <eStructuralFeatures xsi:type="ecore:EReference" name="variableOrNode" eType="#//VariableOrNode"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="singletonVariable" eType="#//ImplicitVariable"
        containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//Relation #//Statement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
        eType="#//Node" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="VariableOrNode" abstract="true" eSuperTypes="#//NamedElement"/>
</ecore:EPackage>